Spring oauth jwt浏览器在curl失败时工作
Posted
技术标签:
【中文标题】Spring oauth jwt浏览器在curl失败时工作【英文标题】:Spring oauth jwt browser works while curl fails 【发布时间】:2018-03-27 06:09:23 【问题描述】:我已经关注了这个博客的 spring oauth jwt:https://medium.com/@nydiarra/secure-a-spring-boot-rest-api-with-json-web-token-reference-to-angular-integration-e57a25806c50
在 Chrome 或 IE edge 等浏览器中,当我转到 https://infinite-tundra-6984.herokuapp.com/springjwt/cities 时,系统会提示我输入用户名和密码。
标准用户:
用户名:john.doe
密码:jwtpass
对于管理员:
用户名:admin.admin
密码:jwtpass
它按预期工作。
但是,当我使用 curl 时:
curl testjwtclientid:MaYzkSjmkzPC57L@infinite-tundra-6984.herokuapp.com/oauth/token -d grant_type=password -d username=admin.admin -d password=jwtpass
我得到一个像这样的令牌: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsidGVzdGp3dHJlc291cmNlaWQiXSwidXNlcl9uYW1lIjoiYWRtaW4uYWRtaW4iLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNTA4MTMxNzQwLCJhdXRob3JpdGllcyI6WyJTVEFOREFSRF9VU0VSIiwiQURNSU5fVVNFUiJdLCJqdGkiOiIyNjVmYmY5OS0wYWU3LTQ0MmQtOThjNy03ZTkxMmFhYWZlNWYiLCJjbGllbnRfaWQiOiJ0ZXN0and0Y2xpZW50aWQifQ.exXHqinGAfoPYLFYxhiWIsEg1FSSHxw34Snxdk0AqnU P>
然后我做:
卷曲https://infinite-tundra-6984.herokuapp.com/springjwt/cities -H “授权:承载eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsidGVzdGp3dHJlc291cmNlaWQiXSwidXNlcl9uYW1lIjoiYWRtaW4uYWRtaW4iLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNTA4MTMxNzQwLCJhdXRob3JpdGllcyI6WyJTVEFOREFSRF9VU0VSIiwiQURNSU5fVVNFUiJdLCJqdGkiOiIyNjVmYmY5OS0wYWU3LTQ0MmQtOThjNy03ZTkxMmFhYWZlNWYiLCJjbGllbnRfaWQiOiJ0ZXN0and0Y2xpZW50aWQifQ.exXHqinGAfoPYLFYxhiWIsEg1FSSHxw34Snxdk0AqnU” P>
我收到了 401
有人可以给我一些关于访问安全内容的两种方式之间的区别的提示吗?
似乎,通过 curl/token 访问,它无法确定我的角色
【问题讨论】:
【参考方案1】:我错过了这一步。
在application.properties中,我需要添加这一行:
security.oauth2.resource.filter-order = 3
这让我花了很多时间
【讨论】:
以上是关于Spring oauth jwt浏览器在curl失败时工作的主要内容,如果未能解决你的问题,请参考以下文章
Spring + Oauth2 + JWT+ Websocket
Spring OAuth + JWT -- /oauth/token