Spring oauth jwt浏览器在curl失败时工作

时间:2017-10-15 17:49:29

标签: spring spring-boot spring-security oauth jwt

我已经关注了这个博客的春天oauth jwt:https://medium.com/@nydiarra/secure-a-spring-boot-rest-api-with-json-web-token-reference-to-angular-integration-e57a25806c50

在Chrome或IE浏览器等浏览器中,当我转到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

然后我这样做:

卷曲https://infinite-tundra-6984.herokuapp.com/springjwt/cities -H"授权:承载eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsidGVzdGp3dHJlc291cmNlaWQiXSwidXNlcl9uYW1lIjoiYWRtaW4uYWRtaW4iLCJzY29wZSI6WyJyZWFkIiwid3JpdGUiXSwiZXhwIjoxNTA4MTMxNzQwLCJhdXRob3JpdGllcyI6WyJTVEFOREFSRF9VU0VSIiwiQURNSU5fVVNFUiJdLCJqdGkiOiIyNjVmYmY5OS0wYWU3LTQ0MmQtOThjNy03ZTkxMmFhYWZlNWYiLCJjbGllbnRfaWQiOiJ0ZXN0and0Y2xpZW50aWQifQ.exXHqinGAfoPYLFYxhiWIsEg1FSSHxw34Snxdk0AqnU"

我得到了401

有人可以给我一些关于访问安全内容的两种方式之间差异的提示吗?

看起来,通过卷曲/令牌访问,它无法弄清楚我的角色

1 个答案:

答案 0 :(得分:0)

我错过了这一步。

在application.properties中,我需要添加以下行:

security.oauth2.resource.filter-order = 3

这给我带来了很多时间