为了账号安全,请及时绑定邮箱和手机立即绑定

spring security oauth2 如何修改返回格式?

spring security oauth2 如何修改返回格式?

汪汪一只猫 2019-03-03 12:46:48
/oauth/token 这个接口获取了access_token,但是是springsecurity默认的格式,我现在想把格式修改为自定义的格式{code:"",msg:"",data:{    access_token:"xxxx"}}这样的格式,请问应该怎么做。使用的是springboot2.0 + springcloud
查看完整描述

3 回答

?
达令说

TA贡献1821条经验 获得超6个赞

同问题,我也想知道

查看完整回答
1 反对 回复 2019-03-03
?
Rv_小样

TA贡献1条经验 获得超0个赞

利用切面去修改返回的格式


@Component

@Aspect

public class AuthTokenAspect {

 

    private Logger logger = LoggerFactory.getLogger(getClass());

 

    /// @Around环绕某个方法(“postAccessToken”的这个方法)

    @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 为自定义的返回格式

            ResponseEntity<OAuth2AccessToken> responseEntity = (ResponseEntity<OAuth2AccessToken>)proceed;

            OAuth2AccessToken body = responseEntity.getBody();

            if (responseEntity.getStatusCode().is2xxSuccessful()) {

                response.setErrorcode(ErrorCode.OK.value);

                response.setValue(ErrorCode.OK.memo);

                response.setData(body);

            } else {

                logger.error("error:{}", responseEntity.getStatusCode().toString());

                response.setErrorcode(ErrorCode.ERROR.value);

                response.setValue("获取授权码失败");

            }

        }

        return ResponseEntity

                .status(200)

                .body(response);

    }

}


查看完整回答
反对 回复 2021-03-04
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

这样的格式,请问应该怎么做。
使用的是springboot2.0 + springcloud

查看完整回答
反对 回复 2019-03-03
  • 3 回答
  • 0 关注
  • 3273 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信