wso2am - 扩展 userstoremanager - 访问 Java 安全管理器权限块时发生错误
wso2am - extending userstoremanager - Error occurred while accessing Java Security Manager Privilege Block
我正在为 WSO2AM 2.1.0 扩展用户存储管理器 ActiveDirectoryUserStoreManager
覆盖 protected String[] doGetExternalRoleListOfUser
方法以从外部授权服务添加角色(角色用于范围授权)。
所有看起来都在本地工作,但在其他环境(部署在 kubernetes 上)请求令牌(代码授权)时我得到 following exception:访问 Java 安全管理器权限块时发生错误
(其他赠款类型没有问题)
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
检查 source code 我看到进行了安全调用 (callSecure),但我没有看到直接原因(尽管我认为如果有人付出如此多的努力,一定有安全原因)。
验证令牌时会弹出同样的问题(调用需要范围的 API)
由于它在本地工作,atm 我无法提供一个工作的可测试(可重复)案例,一旦我有一个我会更新问题。
使用默认的 AD 用户存储管理器没有任何问题,只是我们没有可用于授权的外部角色
wso2carbon.log 中还有另一个日志条目(虽然不在控制台中 - 可通过 carbon 控制台获取日志)
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 组的组搜索库似乎有所帮助(到目前为止)
另一个需要的操作是从用户名 WSO2AM2.1.0-update12 scope roles for federated users
中剥离 FEDERATED
领域
我正在为 WSO2AM 2.1.0 扩展用户存储管理器 ActiveDirectoryUserStoreManager
覆盖 protected String[] doGetExternalRoleListOfUser
方法以从外部授权服务添加角色(角色用于范围授权)。
所有看起来都在本地工作,但在其他环境(部署在 kubernetes 上)请求令牌(代码授权)时我得到 following exception:访问 Java 安全管理器权限块时发生错误
(其他赠款类型没有问题)
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
检查 source code 我看到进行了安全调用 (callSecure),但我没有看到直接原因(尽管我认为如果有人付出如此多的努力,一定有安全原因)。
验证令牌时会弹出同样的问题(调用需要范围的 API)
由于它在本地工作,atm 我无法提供一个工作的可测试(可重复)案例,一旦我有一个我会更新问题。
使用默认的 AD 用户存储管理器没有任何问题,只是我们没有可用于授权的外部角色
wso2carbon.log 中还有另一个日志条目(虽然不在控制台中 - 可通过 carbon 控制台获取日志)
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 组的组搜索库似乎有所帮助(到目前为止)
另一个需要的操作是从用户名 WSO2AM2.1.0-update12 scope roles for federated users
中剥离FEDERATED
领域