我已经关注了这个博客的春天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
有人可以给我一些关于访问安全内容的两种方式之间差异的提示吗?
看起来,通过卷曲/令牌访问,它无法弄清楚我的角色
答案 0 :(得分:0)
我错过了这一步。
在application.properties中,我需要添加以下行:
security.oauth2.resource.filter-order = 3
这给我带来了很多时间