/** * This function has been copied (and modified) from the Keycloak AdapterDeploymentContext class. * It should be kept up-to-date with future versions of Keycloak. */ private KeycloakUriBuilder getBaseBuilder( KeycloakDeployment deployment, HttpFacade.Request facadeRequest) { String base = deployment.getAuthServerBaseUrl(); KeycloakUriBuilder builder = KeycloakUriBuilder.fromUri(base); URI request = URI.create(facadeRequest.getURI()); String scheme = request.getScheme(); if (deployment.getSslRequired().isRequired(facadeRequest.getRemoteAddr())) { scheme = "https"; if (!request.getScheme().equals(scheme) && request.getPort() != -1) { throw new RuntimeException("Can't resolve relative url from adapter config."); } } builder.scheme(scheme); builder.host(request.getHost()); if (request.getPort() != -1) { builder.port(request.getPort()); } return builder; }
@Override public SslRequired getSslRequired() { return delegate.getSslRequired(); }