美文网首页
《Spring微服务实战》第七章 保护微服务(问题与解答)

《Spring微服务实战》第七章 保护微服务(问题与解答)

作者: 9527的编程梦 | 来源:发表于2018-06-05 16:21 被阅读0次

    问题一:OAuth2Authentication的值为null

    • 问题描述:
      在代码清单7-1中,有以下这么一段代码:
        @RequestMapping(value = { "/user" }, produces = "application/json")
        public Map<String, Object> user(OAuth2Authentication user) {
            Map<String, Object> userInfo = new HashMap<>();
            userInfo.put("user", user.getUserAuthentication().getPrincipal());
            userInfo.put("authorities", AuthorityUtils.authorityListToSet(user.getUserAuthentication().getAuthorities()));
            return userInfo;
        }
    

    在将OAuth2访问令牌作为首部去请求/user时,代码中user的值一直为null。

    • 原因:Spring Cloud的版本由1.4升到1.5时,有关OAuth过滤器的order由3变为了1,这导致了上述代码中的user变为null。
    • 解决方案:

    1.第一种方案是将Spring Cloud的版本降为1.4
    2.第二种方案是在application.yml文件中,添加以下属性:

    security:
      oauth2:
        resource:
          filter-order: 3
    

    相关文章

      网友评论

          本文标题:《Spring微服务实战》第七章 保护微服务(问题与解答)

          本文链接:https://www.haomeiwen.com/subject/jgxmsftx.html