传递到 /oauth2/token 时为 Null 或空范围,给出所有范围。当范围通过时,得到正确的响应

问题描述 投票:0回答:1

下面是我的卷发。我正在 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

spring-boot spring-security oauth-2.0 jwt access-token
1个回答
0
投票

根据https://www.rfc-editor.org/rfc/rfc6749#section-3.3

如果客户端请求时省略了scope参数
授权,授权服务器必须处理
使用预定义的默认值请求或使请求失败
指示无效范围。

在您的情况下,它取决于 OAuth 服务器。如果您有权访问服务器,您应该能够配置或更改代码如何响应请求中的空范围

© www.soinside.com 2019 - 2024. All rights reserved.