<html><head></head><body>Hi there,<br><br>we are currently setting up keycloak (1.8.1.Final) with an application containing an embedded jetty (9.2.10.v20150310). <br>Following the guidelines in the documentation, we have managed to make the authentication redirect process work.<br><br>However when the request is redirected back to our jetty (with an successful authentication), the variable "principal" of <b>org.keycloak.adapters.jetty.core.JettyRequestAuthenticator</b> in line 274 of <b>org.keycloak.adapters.jetty.core.AbstractKeycloakJettyAuthenticator</b> is null. <br><br>We are not fully understanding the mechanism behind it, thus have difficulties understanding what we are doing wrong here. Following is our jetty embedded code. We assume that the problem must be within those lines.<br>Any help, insight or tip is highly appreciated!<br><br>Thank you,<br>Gregor&nbsp; <br><br><span style="white-space:pre;">&nbsp;&nbsp;&nbsp;</span> <span style="white-space:pre;">&nbsp;&nbsp;&nbsp;</span> ...<br><span style="white-space:pre;">&nbsp;&nbsp;&nbsp;</span> <span style="white-space:pre;">&nbsp;&nbsp;&nbsp;</span> final HandlerList handlers = new HandlerList();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KeycloakJettyAuthenticator keycloakAuthenticator = new KeycloakJettyAuthenticator();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AdapterConfig keycloakAdapterConfig = new AdapterConfig();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keycloakAdapterConfig.setRealm("realm");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keycloakAdapterConfig.setRealmKey("realmKEY");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keycloakAdapterConfig.setAuthServerUrl("http://localhost:8080/auth");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keycloakAdapterConfig.setSslRequired("none");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keycloakAdapterConfig.setResource("client");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keycloakAdapterConfig.setPublicClient(true);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keycloakAdapterConfig.setTokenStore("cookie");<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keycloakAuthenticator.setAdapterConfig(keycloakAdapterConfig);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ConstraintSecurityHandler security = new ConstraintSecurityHandler();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server.setHandler(security);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Constraint constraint = new Constraint();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; constraint.setName("auth");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; constraint.setAuthenticate(true);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; constraint.setRoles(new String[] { "user", "admin" });<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ConstraintMapping mapping = new ConstraintMapping();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapping.setPathSpec("/*");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapping.setConstraint(constraint);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; security.setConstraintMappings(Collections.singletonList(mapping));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; security.setAuthenticator(keycloakAuthenticator);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handlers.addHandler(security);<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServletContextHandler servletHandler = new ServletContextHandler(security, "/*", ServletContextHandler.NO_SESSIONS);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handlers.addHandler(servletHandler);<br><span style="white-space:pre;">&nbsp;&nbsp;&nbsp;</span> <span style="white-space:pre;">&nbsp;&nbsp;&nbsp;</span> server.setHandler(handlers);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br></body></html>