@Override public String getEmail() { return auth.getEmail(); }
properties.add(new KeycloakProperty(StandardUserProperties.EMAIL, accessToken.getEmail())); properties.add(new KeycloakProperty(BIRTHDATE, accessToken.getBirthdate())); properties.add(new KeycloakProperty(GENDER, accessToken.getGender()));
/** * @see io.apiman.manager.api.security.impl.DefaultSecurityContext#getEmail() */ @Override public String getEmail() { HttpServletRequest request = DefaultSecurityContext.servletRequest.get(); org.keycloak.KeycloakSecurityContext session = (org.keycloak.KeycloakSecurityContext) request.getAttribute(org.keycloak.KeycloakSecurityContext.class.getName()); if (session != null) { return session.getToken().getEmail(); } else { return null; } }
/** * @see io.apiman.manager.api.security.impl.DefaultSecurityContext#getEmail() */ @Override public String getEmail() { HttpServletRequest request = DefaultSecurityContext.servletRequest.get(); org.keycloak.KeycloakSecurityContext session = (org.keycloak.KeycloakSecurityContext) request.getAttribute(org.keycloak.KeycloakSecurityContext.class.getName()); if (session != null) { return session.getToken().getEmail(); } else { return null; } }
@Override public String getEmail() { return keycloakSecurityContext.getToken().getEmail(); }
result.put("given-name", token.getGivenName()); result.put("family-name", token.getFamilyName()); result.put("email", token.getEmail());
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 boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) { try { SimpleHttpFacade simpleHttpFacade = new SimpleHttpFacade(httpServletRequest, httpServletResponse); AccessToken accessToken = simpleHttpFacade.getSecurityContext().getToken(); Set<String> resourceRoles = Sets.newHashSet(); AccessToken.Access resourceAccess = accessToken.getResourceAccess() .getOrDefault(keycloakResource, null); if (resourceAccess != null) { resourceRoles = resourceAccess.getRoles(); } locKeycloakLog.save( LocKeycloakLog.LocKeycloakLogDomain.builder() .param(httpServletRequest.getParameterMap().toString()) .createDateTime(LocalDateTime.now()).url(httpServletRequest.getContextPath()) .userName(accessToken.getName()).email(accessToken.getEmail()) .realmRoles(accessToken.getRealmAccess().getRoles()) .resourceRoles(resourceRoles).build()); log.info("keycloak security pre handle {} ({}) in {} access {}", accessToken.getName(), accessToken.getEmail(), accessToken.getAudience()[0], httpServletRequest.getRequestURI()); } catch (Exception e) { log.warn(e.getMessage(), e); } return true; }
if (token != null) { User user = new User(); user.setEmail(token.getEmail()); user.setLogin(token.getPreferredUsername()); user.setName(token.getName());
@SuppressWarnings("unchecked") private Object createUserDetails(NativeWebRequest webRequest) { KeycloakPrincipal<RefreshableKeycloakSecurityContext> principal = (KeycloakPrincipal<RefreshableKeycloakSecurityContext>) webRequest.getUserPrincipal(); AccessToken token = principal.getKeycloakSecurityContext().getToken(); return new UserDetails(token.getId(), token.getGivenName(), token.getFamilyName(), token.getEmail(), token.getRealmAccess().getRoles()); }
/** * @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); }
@Produces @CurrentUser @Override public HawkularUser getCurrent() { Principal p = sessionContext.getCallerPrincipal(); if (!(p instanceof KeycloakPrincipal)) { logger.nonAuthRequestWantsPersona(); return null; } KeycloakPrincipal principal = (KeycloakPrincipal) p; String id = principal.getName(); String name = principal.getKeycloakSecurityContext().getToken().getName(); String email = principal.getKeycloakSecurityContext().getToken().getEmail(); HawkularUser user = getOrCreateByIdAndName(id, name); boolean needsUpdate = false; if (!name.equals(user.getName())) { logger.settingUsersName(id, name, user.getName()); user.setName(name); needsUpdate = true; } if (null != email && !email.equals(user.getEmail())) { logger.settingUsersEmail(id, email, user.getEmail()); user.setEmail(email); needsUpdate = true; } if (needsUpdate) { return update(user); } return user; }