2015-07-21 3 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

Если вы видите параметр области действия scope=read,write, запросив, как раньше получить токен с областью read and write.

Если я пытаюсь сделать то же самое с oauth2 версии 2.0.7.RELEASEPOST просьбой, хотя), я получаю Invalid Scope исключение, потому что tokenRequest принимает read,write в одной области. Клиент, которого я запрашиваю, имеет разрешения read,write and trust, но read,write не является одним из них.

Если бы я попробовать его с scope=write или scope=read, оно работает нормально, потому что read или write являются частью сферы клиента.

Если я хочу запросить несколько областей в OAuth2 2.0.7.RELEASE, как это сделать?

ответ

4

Я нашел правильный способ сделать это. Вместо областей, разделенных запятыми, вы должны использовать + для разделения областей.

Ex: read+write, write+trust

Так следующее POST запрос работал нормально.

http://localhost:8080/oauth/token?grant_type=password&client_id=ws&client_secret=secret&scope=Чтение + запись & [email protected] & пароль = temp123

Я надеюсь, что это поможет другим :)

+0

как я должен писать, если у меня есть прицелы чтения , написать, доверие для клиента? ответьте – KJEjava48

+0

** scope = читать + писать + доверие ** должно работать нормально. – Karthik

+0

его не работает для меня .. Я хочу писать область в базе данных так же, как это ?? – KJEjava48

Смежные вопросы