@Override public String getUserName() { return this.auth.getPreferredUsername(); }
@Override public String getUsername() { return accessToken.getPreferredUsername(); }
private String extractUserFromToken(AccessToken jwt) { // retrieve the preferred_username claim String userName = jwt.getPreferredUsername(); if (logger.isTraceEnabled()) { logger.trace("Extracted username: " + AuthenticationUtil.maskUsername(userName)); } return userName; }
@Override public Optional<String> username() { return token().map(t -> t.getPreferredUsername()); }
private String extractUserFromToken(AccessToken jwt) { // retrieve the preferred_username claim String userName = jwt.getPreferredUsername(); if (logger.isTraceEnabled()) { logger.trace("Extracted username: " + AuthenticationUtil.maskUsername(userName)); } return userName; }
@Override public String getUserName() { return keycloakSecurityContext.getToken().getPreferredUsername(); }
/** * Extract the username to be used in multiple queries * * @return current logged in user */ @Produces @LoggedIn public String extractUsername() { final KeycloakPrincipal principal = (KeycloakPrincipal) httpServletRequest.getUserPrincipal(); if (principal != null) { logger.debug("Running with Keycloak context"); KeycloakSecurityContext kcSecurityContext = principal.getKeycloakSecurityContext(); return kcSecurityContext.getToken().getPreferredUsername(); } logger.debug("Running outside of Keycloak context"); final String basicUsername = HttpBasicHelper.extractUsernameAndPasswordFromBasicHeader(httpServletRequest)[0]; if (! basicUsername.isEmpty()) { logger.debug("running HttpBasic auth"); return basicUsername; } logger.debug("Running without any Auth context"); return "admin"; // by default, we are admin! } }
private boolean doesUserMatchSession( @Nonnull final String sessionId, @Nonnull final OidcKeycloakAccount account ) { final String userID = account.getKeycloakSecurityContext().getToken().getPreferredUsername(); final ReplicantSession session = getSessionManager().getSession( sessionId ); return null != session && Objects.equals( session.getUserID(), userID ); }
.map(t -> t.getPreferredUsername()) .map(u -> ContextManagerImpl.getInstance().addThreadContext(USER_CONTEXT, u)) .orElse(null);
@Nonnull @Override protected ReplicantSession newReplicantSession() { final OidcKeycloakAccount account = getAuthService().findAccount(); final String userId = null == account ? null : account.getKeycloakSecurityContext().getToken().getPreferredUsername(); final String sessionId = UUID.randomUUID().toString(); return new ReplicantSession( userId, sessionId ); } }
public static String getPrincipalName(KeycloakDeployment deployment, AccessToken token) { String attr = "sub"; if (deployment.getPrincipalAttribute() != null) attr = deployment.getPrincipalAttribute(); String name = null; if ("sub".equals(attr)) { name = token.getSubject(); } else if ("email".equals(attr)) { name = token.getEmail(); } else if ("preferred_username".equals(attr)) { name = token.getPreferredUsername(); } else if ("name".equals(attr)) { name = token.getName(); } else if ("given_name".equals(attr)) { name = token.getGivenName(); } else if ("family_name".equals(attr)) { name = token.getFamilyName(); } else if ("nickname".equals(attr)) { name = token.getNickName(); } if (name == null) name = token.getSubject(); return name; }
@Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { KeycloakAuthenticationToken token = (KeycloakAuthenticationToken) authentication; String userId = authentication.getName(); //this will be keycloak id if (token.getPrincipal() instanceof KeycloakPrincipal) { KeycloakPrincipal<KeycloakSecurityContext> kp = (KeycloakPrincipal<KeycloakSecurityContext>) token.getPrincipal(); //option to use username instead of id if (kp.getKeycloakSecurityContext().getToken() != null && kp.getKeycloakSecurityContext().getToken().getPreferredUsername() != null) { userId = kp.getKeycloakSecurityContext().getToken().getPreferredUsername(); //replace with username - could be changed to e.g. email if desired } } setAuthenticatedUserId(userId); return super.authenticate(authentication); }
protected User createKeycloakUser(final AccessToken accessToken) { final User user = new UserImpl(accessToken.getPreferredUsername(), createRoles(accessToken)); final Collection<KeycloakProperty> properties = getKeycloakUserProperties(accessToken); for (KeycloakProperty property : properties) { if (property.hasValue()) { user.setProperty(property.name, property.value); } } return user; }
properties.add(new KeycloakProperty(PHONENUMBER, accessToken.getPhoneNumber())); properties.add(new KeycloakProperty(PICTURE, accessToken.getPicture())); properties.add(new KeycloakProperty(PREFERRED_USERNAME, accessToken.getPreferredUsername())); properties.add(new KeycloakProperty(PROFILE, accessToken.getProfile())); properties.add(new KeycloakProperty(SUBJECT, accessToken.getSubject()));
User user = new User(); user.setEmail(token.getEmail()); user.setLogin(token.getPreferredUsername()); user.setName(token.getName()); httpSession.setAttribute(RequestAttributeKeys.USER_KEY, user);
/** * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpReq = (HttpServletRequest) request; KeycloakSecurityContext session = getSession(httpReq); if (session != null) { // Fabricate a User object from information in the access token and store it in the security context. AccessToken token = session.getToken(); if (token != null) { User user = new User(); user.setEmail(token.getEmail()); user.setLogin(token.getPreferredUsername()); user.setName(token.getName()); ((SecurityContext) security).setUser(user); ((SecurityContext) security).setToken(session.getTokenString()); } } chain.doFilter(request, response); }