通过AOP切面来改变OAuth2 生成access_token返回值格式
@Component
@Aspect
public class AuthTokenAspect {
/// @Around注解 改变controller返回值的
@Around("execution(* org.springframework.security.oauth2.provider.endpoint.TokenEndpoint.postAccessToken(..))")
public Object handleControllerMethod(ProceedingJoinPoint pjp) throws Throwable {
// 放行
Response response = new Response();
Object proceed = pjp.proceed();
if (proceed != null) {
ResponseEntity<OAuth2AccessToken> responseEntity = (ResponseEntity<OAuth2AccessToken>) proceed;
OAuth2AccessToken body = responseEntity.getBody();
// 返回token值
AuthTokenDto accessToken = new AuthTokenDto();
accessToken.setToken(body.getValue());
//accessToken.setExpiresIn(body.getExpiresIn());
//accessToken.setRefreshToken(body.getRefreshToken().getValue());
return ResponseEntity.status(200).body(accessToken);
}
return ResponseEntity.status(200).body(response);
}
}
效果如下: