2015-07-21 114 views
3

我们有一个使用spring-security-oauth2:1.0的应用程序。我试图将其更改为更新的版本,spring-security-oauth2:2.0.7.RELEASE。如果我没有指定scope或者如果我指定了单个作用域,则应用程序可以正常工作。我在申请多个范围时遇到了问题,例如read,write,这些范围曾用于以前的版本。在Spring Security中请求多个范围Oauth2版本2.0.7.RELEASE

我要求的客户端拥有全部read,write and trust权限。

当我使用spring-security-oauth2:1.0,让我用来做像

http://localhost:8080/oauth/token?grant_type=password&client_id=ws&client_secret=secret&scope=read,write&[email protected]&password=temp123

get调用如果你看到的范围参数scope=read,write令牌,通过请求这样我用获取范围为read and write的令牌。

如果我尝试做的OAuth2版本2.0.7.RELEASE(带虽然POST要求)同样的事情,我得到Invalid Scope异常,因为tokenRequest正在read,write作为一个单一的范围。我要求的客户端有read,write and trust权限,但read,write不是其中之一。

如果我scope=writescope=read尝试它,因为readwrite是客户端的范围的一部分工作正常。

如果我想请求多个范围在OAuth2 2.0.7.RELEASE,我该怎么做?

回答

4

我找到了正确的方法来做到这一点。不要使用逗号分隔的范围,您必须使用+分隔范围。

例:read+writewrite+trust

所以下面POST要求正常工作。

http://localhost:8080/oauth/token?grant_type=password&client_id=ws&client_secret=secret&scope=读+写 & [email protected] &密码= temp123

我希望这会帮助别人:)

+0

我应该怎么写,如果我有阅读的作用域,写信给客户?请回复 – KJEjava48

+0

**范围=读取+写入+信任**应该正常工作。 – Karthik

+0

它不适合我..我想写在数据库范围也是这样的? – KJEjava48

相关问题