下面是我的卷发。我正在 Spring Boot 安全应用程序中触发
/oauth2/token
端点。因此,当我在请求正文中给出适当的范围时。我得到了相同的范围响应以及 access_token
。
但是,问题是当我不传递作用域(
null
或空)时,默认情况下我会得到所有响应的作用域以及我的access_token
JWT。
带范围的卷曲:
curl --location 'http://localhost:9000/oauth2/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Cookie: JSESSIONID=070D5BC0E37818B02C51DC62C7F52EF8' \ --data-urlencode 'client_id=***************' \ --data-urlencode 'client_secret=***************' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'scope=client.create'
无范围卷曲:
curl --location 'http://localhost:9000/oauth2/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Cookie: JSESSIONID=070D5BC0E37818B02C51DC62C7F52EF8' \ --data-urlencode 'client_id=***************' \ --data-urlencode 'client_secret=***************' \ --data-urlencode 'grant_type=client_credentials'
我尝试手动编写过滤器来捕获
/oauth2/token
的请求并对其进行修改。但这个解决方案仍然不起作用。
我的要求:
有什么方法可以配置来获取我只传递的范围。如果请求中给出了
null
范围或空范围。那么同样应该应用于响应以及我的access_token
。
根据https://www.rfc-editor.org/rfc/rfc6749#section-3.3
如果客户端请求时省略了scope参数
授权,授权服务器必须处理
使用预定义的默认值请求或使请求失败
指示无效范围。
在您的情况下,它取决于 OAuth 服务器。如果您有权访问服务器,您应该能够配置或更改代码如何响应请求中的空范围