我的自定义AuthenticationProvider
调用第三方SSO来验证用户身份。如果用户有效,我会从SSO服务获取身份验证令牌。我必须在会话期间为另一项服务保留此令牌,这将需要此身份验证令牌来验证用户是否具有有效会话。
public Authentication authenticate(Authentication authentication)
throws AuthenticationException {
String id = authentication.getName();
String password = authentication.getCredentials().toString();
JsonObject response = ssoClient.login(id, password);
JsonObject session = response.getJsonObject("session");
JsonObject user = session.getJsonObject("user");
String email = user.getString("email");
String username = user.getString("username");
String fullname = user.getString("fullname");
String auth_token = session.getString("auth_token");
List<GrantedAuthority> grantedAuths = null;
return new CustomAuthenticationToken(username, auth_token, email,
fullname, grantedAuths);
}
我已从AbstractAuthenticationToken
扩展为创建自定义CustomAuthenticationToken
以存储此令牌和其他信息。我应该用itsdangeous(但在java中)签名这个令牌还是加密它?或者我应该将身份验证令牌存储在任何其他位置?谢谢!