解决Spring Security OAuth在访问/oauth/token时候报401 authentication is required

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012040869/article/details/80140515
  先来张图片            

            

我在用psotman 测试oauth授权码模式的出现了401的异常, 就是调用oauth/token.

我是想用code换token,但是发现报错了。这是为什么呢? 首先你要理解

 

/oauth/token
这个如果配置支持allowFormAuthenticationForClients的,且url中有client_id和client_secret的会走ClientCredentialsTokenEndpointFilter来保护
如果没有支持allowFormAuthenticationForClients或者有支持但是url中没有client_id和client_secret的,走basic认证保护
所以我就明白怎么回事了

首先代码里面添加

 @Override
    public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
        oauthServer
                .tokenKeyAccess("permitAll()")
                .checkTokenAccess("permitAll()")
                .allowFormAuthenticationForClients();
    
    //    oauthServer.allowFormAuthenticationForClients();
    }
然后再给postman 添加参数

这样就OK了

 

有 0 个人打赏
文章最后发布于: 2018-04-29 00:30:33
OAuth2.0 原理流程及其单点登录和权限控制
阅读数 2万+

单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清OAuth2.0实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。作者:王克锋出处:htt...
博文
来自: kefeng.wang 的博客

Irsonjava2个月前#7楼
@Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.inMemory()
                .withClient("client")
                .redirectUris("http://www.baidu.com")
                //此处的scopes是无用的,可以随意设置
                .scopes("all","read", "write")
                .secret(passwordEncoder.encode("secret"))//401错误,我的解决办法是这个,仅供参考
                .authorizedGrantTypes("password", "authorization_code", "refresh_token");
    }
举报回复查看回复(1)

Aska小强2个月前#6楼
添加 .allowFormAuthenticationForClients(); 然后 参数上带上 client_id 和 client_secret 就 ok了

专注JavaWeb开发4个月前#5楼
根本不是这个问题 原因就是你没传参client_id和client_secret 你那个oauthServer.tokenKeyAccess("permitAll()");加不加 无所谓
————————————————
版权声明:本文为CSDN博主「moocsea」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012040869/article/details/80140515

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值