Изменения в области конечной точки API не принимаются во внимание, если только не будет перезапущен WSO2.Ошибка продукта?Если нет, какой-либо способ настроить это поведение? - PullRequest
0 голосов
/ 21 декабря 2018

Начиная с API, определенного в WSO2, без областей, связанных с его конечными точками ...

enter image description here

... Я получаю токен доступа ивызывайте их правильно.

Теперь я изменяю и публикую свой API, назначая область одному для конечных точек, так что для этого требуется область редактора:

enter image description here

Теперь я вызываю эту конечную точку редактора с предыдущим access_token, и она работает. Этого не должно быть , поскольку токен был задан с областью по умолчанию, а не с редактором.

Теперь я перезапускаю WSO2 и повторяю попытку с тем же токеном, получая ожидаемый результат доступаотказано:

(900910) - The access token does not allow you to access the requested resource</ams:description></ams:fault>% 

Мне нужно было перезапустить платформу, чтобы рассмотреть изменения области видимости !!Это ошибка, ожидаемое поведение (оно не должно ...), есть ли способ принудительно обновить требования к конечной точке (кроме простой публикации измененного API).?

1 Ответ

0 голосов
/ 21 декабря 2018

Если вы сгенерируете новый токен доступа после изменения или удаления области ресурса API, который вы ранее вызывали, вы не сможете получить доступ к этому конкретному ресурсу API в течение 15 минут,который является периодом кэширования шлюза по умолчанию, поскольку шлюз WSO2 API Manager предназначен для кэширования сведений о ресурсе на его стороне.

Ссылка: https://docs.wso2.com/display/AM250/Scope+Management+with+OAuth+Scopes

Это непрактическая проблема в типичной производственной среде, так как обновления API в производственной среде очень редки.

Однако, если это действительно проблема для вас, вы можете переопределить валидатор области действия по умолчанию [1], расширив его, чтобы не использовать этот кеш.Это настраивается в identity.xml.

[1] https://github.com/wso2-extensions/identity-inbound-auth-oauth/blob/master/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth2/validators/JDBCScopeValidator.java#L92

...