我做了什么
首先,我接受我缺乏春季安全知识。
我正在为我们的某个产品尝试安全的休息服务。我正在使用spring security OAuth2 JWT。我想允许匿名用户和注册用户访问我的资源。
假设我有一项服务" http://localhost:8282/melayer/articles" ,当我运行以下命令时
(1)。 curl -X POST -vu melayer:12345 http://localhost:8282/melayer/oauth/token -H"接受:application / json" -d" password = melayer& username = melayer& grant_type = password& scope = write& client_secret = 12345& client_id = melayer"
我能够收到access_token,refresh_token等。一切都很棒,即使我可以通过收到的access_token访问网址http://localhost:8282/melayer/articles
(2)。卷曲http://localhost:8282/melayer/articles -H"授权:承载eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0NjA3NzY5NDIsInVzZXJfbmFtZSI6ImVjb2tyeXB0IiwianRpIjoiNWI5ZmE4NjYtMTBlNS00NDA2LTgxYmMtYjM3NWVmNGE0ZmQ1IiwiY2xpZW50X2lkIjoiZWNva3J5cHQiLCJzY29wZSI6WyJ3cml0ZSJdfQ.4jO9euBz4TSSNh7M3l2YBD1QPblE0ZyOfGm4VtyFMFY"
我想要了解的内容
我想匿名收到access_token,即我不想传递用户名,密码或客户端密码,我想以下列方式运行curl命令
curl -X POST http://localhost:8282/melayer/oauth/token -H"接受:application / json"
我担心的一个问题是,我希望access_token有或没有用户凭据我试图从上周实现这一点,我错过了什么?可能吗 ?这是怎么回事?
请求帮助我:)
如果有人想查看我的代码,请参阅Git repo https://github.com/aniruddhha/spring-security-oauth2-jwt
答案 0 :(得分:1)
我认为您误解了访问令牌概念,访问令牌意味着代表经过身份验证的用户使用。
OAuth2支持不同的授权类型(密码,authorization_code等),请查看规范Oauth2 Spec
为了对使用过的身份验证,您可以使用这些授权中的任何一种,也可以创建自己的授权(例如:使用Google令牌登录),但您必须发送某种形式的用户凭据来识别用户和客户端凭据以识别客户端
访问令牌不能用作某种用于访问公共API的ApiKey