请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

OAuth2 中 如何统一错误信息格式(JOSN)。使整个 Restful 服务具有统一返回格式。

正在回答 回答被采纳积分+3

4回答

beyond_0012 2018-05-16 14:37:46

同问。。。怎么把SpringSecurity里的异常、错误信息重新包装,以统一的json形式返回{code:"xxx",msg:"xxx",data:"xxx"}

1 回复 有任何疑惑可以回复我~
丶恶徒丶 2017-10-29 14:11:17

可以看一下有个免费的课程叫做玩着springboot web 那个  自定义一个类做返回就可以了

1 回复 有任何疑惑可以回复我~
  • 提问者 lilang #1
    你好,那个我看了,现在oauth,认证错误时,返回的格式和我自定义的返回格式不一致。所以想如何统一
    回复 有任何疑惑可以回复我~ 2017-11-01 10:05:26
JoJo 2017-10-19 11:56:32

额...能具体描述一下么?没明白你想要什么效果。

1 回复 有任何疑惑可以回复我~
  • 提问者 lilang #1
    您好,之前描述的不是很清楚。
    // oauth2 认证失败响应内容
    {
        "error": "invalid_token",
        "error_description": "Access token expired: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNTlkZjQ2MjYyYzBiN2Q0NDIwNDY2YTA1IiwidXNlcl9uYW1lIjoibGx0aW1lOTBAZm94bWFpbC5jb20iLCJzY29wZSI6WyJhbGwiXSwiZXhwIjoxNTA5NDUyMjcxLCJhdXRob3JpdGllcyI6WyJBRE1JTiJdLCJqdGkiOiIzM2FjZjc3OS1iMzgzLTRmMzItOTBlOC0yOTRiNWRhMDVlNzgiLCJjbGllbnRfaWQiOiJibGFzdC1hcHAifQ.nKK8rZuji53hRBNYjON6hSuQrj7MfAWtNyd662_D32g"
    }
    
    // 自定义的 RESTFul api 统一返回内容
    {
        code:1,
        error:"",
        data:{
            "id":"xxxxx",
            "age":11
        }
    }
    请问:如何统一两者返回的Json格式。
    回复 有任何疑惑可以回复我~ 2017-11-01 09:25:36
  • 提问者 lilang #2
    老师大概想明白了,大致思路如下,请您指点下,
    1. oauth授权可以使用老师课程中的自定义授权方式统一响应返回。
    2. 通过在资源服务器中配置以下代码完成认证错误的处理,
     // 自定义访问被拒绝的处理器
     // 自定义认证失败处理器
     http.exceptionHandling()
                    .accessDeniedHandler(new RestAccessDeniedHandler())
                    .authenticationEntryPoint(new RestAuthenticationEntryPoint());
    3. 关于Spring 默认的异常处理 可以通过继 ResponseEntityExceptionHandler 类重写 handleExceptionInternal 方法
    请问老师,这种做法是最好的方案吗?还有没有更好的方案吗?谢谢老师
    回复 有任何疑惑可以回复我~ 2017-11-01 12:40:28
  • 提问者 lilang #3
    实践了下,行不通。(>﹏<)
    回复 有任何疑惑可以回复我~ 2017-11-01 18:16:20
提问者 lilang 2017-11-01 09:25:53
// oauth2 认证失败响应内容
{
    "error": "invalid_token",
    "error_description": "Access token expired: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNTlkZjQ2MjYyYzBiN2Q0NDIwNDY2YTA1IiwidXNlcl9uYW1lIjoibGx0aW1lOTBAZm94bWFpbC5jb20iLCJzY29wZSI6WyJhbGwiXSwiZXhwIjoxNTA5NDUyMjcxLCJhdXRob3JpdGllcyI6WyJBRE1JTiJdLCJqdGkiOiIzM2FjZjc3OS1iMzgzLTRmMzItOTBlOC0yOTRiNWRhMDVlNzgiLCJjbGllbnRfaWQiOiJibGFzdC1hcHAifQ.nKK8rZuji53hRBNYjON6hSuQrj7MfAWtNyd662_D32g"
}

// 自定义的 RESTFul api 统一返回内容
{
    code:1,
    error:"",
    data:{
        "id":"xxxxx",
        "age":11
    }
}

如何统一两者返回的Json格式。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信