存储身份验证令牌的最安全方法

时间:2016-09-15 15:55:55

标签: java spring spring-security

我的自定义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中)签名这个令牌还是加密它?或者我应该将身份验证令牌存储在任何其他位置?谢谢!

0 个答案:

没有答案