@Override public Authentication authenticate(Authentication authentication) { JaasAuthenticationToken jaasAuthenticationToken = (JaasAuthenticationToken) delegate .authenticate(authentication); if (jaasAuthenticationToken.isAuthenticated()) { String userName = jaasAuthenticationToken.getPrincipal().toString(); jaasAuthenticationToken.getLoginContext().getSubject().getPrincipals().add(new UserPrincipal(userName)); jaasAuthenticationToken.getLoginContext().getSubject().getPrincipals().add(new GroupPrincipal("group_1")); jaasAuthenticationToken.getLoginContext().getSubject().getPrincipals().add(new GroupPrincipal("group_2")); jaasAuthenticationToken.getLoginContext().getSubject().getPrincipals().add(new GroupPrincipal("group_3")); return jaasAuthenticationToken; } else { return null; } }
public Authentication authenticate(Authentication auth) throws AuthenticationException { JaasAuthenticationToken ret = (JaasAuthenticationToken)super.authenticate(auth); for (GrantedAuthority role: ret.getAuthorities()) { UniTimeUserContext user = new UniTimeUserContext(role.getAuthority(), ret.getName(), null, null); return new JaasAuthenticationToken(user, ret.getCredentials(), new ArrayList<GrantedAuthority>(user.getAuthorities()), ret.getLoginContext()); } return null; }