史上最简单方式来改变OAuth2 生成access_token返回值

通过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);
    }
}

效果如下:

 

史上最简单方式来改变OAuth2 生成access_token返回值