Spring Security:在我的控制器类中获取 OAuth2AccessToken 附加信息

问题描述 投票:0回答:1

您好,有一种情况,我需要在控制器类中检索使用 OAuth2AccessToken 存储的附加详细信息。我用过

accessToken.setAdditionalInformation(additionalInformation);

保存数据。如何获取我存储在控制器类的additionalInformation中的数据?

spring-security
1个回答
2
投票

我们可以使用 HttpServletRequest,从 Authorization 标头中获取令牌,然后从令牌存储中获取令牌详细信息。 我的代码片段在下面分享。

public TokenData getTokenData(HttpServletRequest request) throws InputInvalidException {
    TokenData tokenData = null;
    try {
        String authHeader = request.getHeader("Authorization");
        if (authHeader != null) {
            String tokenValue = authHeader.toLowerCase().replace("bearer", "").trim();
            OAuth2AccessToken accessToken = tokenStore.readAccessToken(tokenValue);
            tokenData = (TokenData) accessToken.getAdditionalInformation().get("tokenData");
        }
    } catch (Throwable exception) {
        logger.error(exception);
        throw new InputInvalidException("token invalid");   
    }
    return tokenData;
}
© www.soinside.com 2019 - 2024. All rights reserved.