您的情况是我需要在OAuth2AccessToken中存储的其他详细信息才能在我的控制器类中检索。我用过
accessToken.setAdditionalInformation(additionalInformation);
保存数据。如何在控制器类中获取存储在additionalInformation中的数据?
答案 0 :(得分:1)
我们可以使用HttpServletRequest,通过从Authorization标头获取令牌,然后从令牌存储中获取令牌详细信息。 我的代码的代码段在下面分享。
public TokenData getTokenData(HttpServletRequest request) throws InputInvalidException {
String methodName = "getTokenData()";
long startTime = System.currentTimeMillis();
logger.debug(methodName + ", starts");
TokenData tokenData = null;
try {
String authHeader = request.getHeader("Authorization");
if (authHeader != null) {
String tokenValue = authHeader.toLowerCase().replace("bearer", "").trim();
logger.debug(methodName + ", tokenValue::" + tokenValue);
OAuth2AccessToken accessToken = tokenStore.readAccessToken(tokenValue);
tokenData = (TokenData) accessToken.getAdditionalInformation().get("tokenData");
}
} catch (Throwable exception) {
logger.error(exception);
throw new InputInvalidException("token invalid");
}
logger.debug(methodName + ", ends" + Constants.DELIMITERS.COMMA + (System.currentTimeMillis() - startTime));
return tokenData;
}