Search in sources :

Example 1 with BootstrapFailed

use of org.jboss.hal.client.bootstrap.BootstrapFailed in project console by hal.

the class EndpointManager method connect.

private void connect(Optional<Endpoint> endpoint) {
    String baseUrl = endpoint.map(Endpoint::getUrl).orElse(Endpoints.getBaseUrl());
    endpoints.useBase(baseUrl);
    String managementEndpoint = baseUrl + MANAGEMENT;
    XMLHttpRequest xhr = new XMLHttpRequest();
    xhr.onload = event -> {
        int status = xhr.status;
        switch(status) {
            case 0:
            case 200:
            case 401:
                if (keycloakPresentAndValid()) {
                    callback.execute();
                } else {
                    checkKeycloakAdapter(baseUrl, keycloakServerJsUrl -> {
                        // if there is a keycloak adapter, call keycloak authentication
                        authKeycloak(getKeycloakAdapterUrl(baseUrl), keycloakServerJsUrl, callback::execute);
                    }, () -> {
                        // if there is no keycloak adapter for wildfly-console, proceed with regular authentication
                        callback.execute();
                    });
                }
                break;
            case 403:
                Elements.removeChildrenFrom(document.body);
                document.body.appendChild(new RbacProviderFailed("Status " + status + " - " + xhr.statusText).element());
                break;
            case 503:
                Elements.removeChildrenFrom(document.body);
                document.body.appendChild(new BootstrapFailed("Status " + status + " - " + xhr.statusText, Endpoints.INSTANCE).element());
                break;
            // break;
            default:
                logger.info("Unable to serve HAL from '{}'. Please select a management interface.", managementEndpoint);
                openDialog();
                break;
        }
    };
    xhr.onerror = (event) -> {
        Elements.removeChildrenFrom(document.body);
        document.body.appendChild(new BootstrapFailed("Failed connecting to a management interface", Endpoints.INSTANCE).element());
        return null;
    };
    xhr.open(GET.name(), managementEndpoint, true);
    xhr.withCredentials = true;
    xhr.send();
}
Also used : BootstrapFailed(org.jboss.hal.client.bootstrap.BootstrapFailed) XMLHttpRequest(elemental2.dom.XMLHttpRequest)

Aggregations

XMLHttpRequest (elemental2.dom.XMLHttpRequest)1 BootstrapFailed (org.jboss.hal.client.bootstrap.BootstrapFailed)1