wso2am - расширение userstoremanager - ошибка при доступе к блоку привилегий Java Security Manager - PullRequest
0 голосов
/ 11 июня 2018

Я расширяю менеджер хранилища пользователей ActiveDirectoryUserStoreManager для WSO2AM 2.1.0, переопределяя метод protected String[] doGetExternalRoleListOfUser для добавления ролей из внешней службы авторизации (роли используются для авторизации области).

Все выглядит локально, но в других средах (развернутых в kubernetes) при запросе токена (предоставление кода) я получил следующее исключение : ошибка при доступе к блоку привилегий Java Security Manager

(работают другие типы предоставлениябез проблем)

Error occurred while issuing the access token for Client ID : ddSiloINsMx5fwp08FqqF62hcaaa, User ID null, Scope : [] and Grant Type : authorization_code    More
ERROR {org.wso2.carbon.identity.oauth2.OAuth2Service} - Error occurred while issuing the access token for Client ID : ddSiloINsMx5fwp08FqqF62hcaaa, User ID null, Scope : [] and Grant Type : authorization_code 
java.util.AbstractCollection.addAll(AbstractCollection.java:343) 
org.wso2.carbon.apimgt.keymgt.ScopesIssuer.setScopes(ScopesIssuer.java:110)
org.wso2.carbon.apimgt.keymgt.handlers.ExtendedAuthorizationCodeGrantHandler.validateScope(ExtendedAuthorizationCodeGrantHandler.java:48)
org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer.issue(AccessTokenIssuer.java:242) 
...
ERROR {org.wso2.carbon.apimgt.keymgt.issuers.RoleBasedScopesIssuer} - Error when getting the tenant's UserStoreManager or when getting roles of user 
org.wso2.carbon.user.core.common.AbstractUserStoreManager.callSecure(AbstractUserStoreManager.java:177) 
org.wso2.carbon.user.core.common.AbstractUserStoreManager.getRoleListOfUser(AbstractUserStoreManager.java:2586) 
org.wso2.carbon.apimgt.keymgt.issuers.RoleBasedScopesIssuer.getScopes(RoleBasedScopesIssuer.java:118) 
org.wso2.carbon.apimgt.keymgt.ScopesIssuer.setScopes(ScopesIssuer.java:109) 
...
ERROR {org.wso2.carbon.user.core.common.AbstractUserStoreManager} - Error occurred while accessing Java Security Manager Privilege Block

Проверка исходного кода Я вижу, что сделаны безопасные звонки (callSecure), что я не вижу непосредственной причины (хотя я предполагаю, что должно бытьиз соображений безопасности, если кто-то приложил столько усилий).

Появляется та же проблема при проверке токена (при вызове API, требующего области действия)

Поскольку он работает локально, я не могупредоставьте работающий тестируемый (повторяемый) случай, и как только он у меня появится, я обновлю вопрос.

Использование менеджера пользовательских хранилищ AD по умолчанию.Это не проблема, просто у нас нет внешних ролей, доступных для авторизации

1 Ответ

0 голосов
/ 12 июня 2018

В wso2carbon.log была еще одна запись журнала (хотя и не в консоли - журналы доступны через углеродную консоль)

Caused by: java.lang.NullPointerException
    at org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager.getLDAPRoleListOfUser(ReadOnlyLDAPUserStoreManager.java:1928)
    at org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager.doGetExternalRoleListOfUser(ReadOnlyLDAPUserStoreManager.java:2041)
    at com.rd.poa.auth.roleuserstore.ExtRoleUserstore.doGetExternalRoleListOfUser(ExtRoleUserstore.java:162)
    at org.wso2.carbon.user.core.common.AbstractUserStoreManager.doGetRoleListOfUser(AbstractUserStoreManager.java:3730)
    at org.wso2.carbon.user.core.common.AbstractUserStoreManager.getRoleListOfUser(AbstractUserStoreManager.java:2615) 

кажется, что пользователи были членами групп вне фильтра "GroupSearch".Создание базы поиска группы, содержащей все группы LDAP, кажется (пока)

другим необходимым действием было удаление области FEDERATED из имени пользователя Роли области действия WSO2AM2.1.0-update12 для федеративных пользователей

...