版权声明:本文为博主原创文章,遵循 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