WSO2is:使用 SCIM 命令获取异常自定义消息
WSO2is: Get an exception custom message using SCIM command
我正在为 wso2is 编写一个简单的自定义用户存储管理器。
这是代码:
public class CustomJDBCUserStoreManager extends JDBCUserStoreManager {
private static Log log = LogFactory.getLog(CustomJDBCUserStoreManager.class);
public CustomJDBCUserStoreManager() {
}
public CustomJDBCUserStoreManager(org.wso2.carbon.user.api.RealmConfiguration realmConfig,
Map<String, Object> properties,
ClaimManager claimManager,
ProfileConfigurationManager profileManager,
UserRealm realm, Integer tenantId)
throws UserStoreException {
super(realmConfig, properties, claimManager, profileManager, realm, tenantId, false);
}
@Override
public void doAddUser(String userName, Object credential, String[] roleList,
Map<String, String> claims, String profileName,
boolean requirePasswordChange) throws UserStoreException {
String[] users = super.doListUsers( "*", -1);
int nUser = users.length;
if (nUser > 5){
throw new UserStoreException( "Reached the maximum number of global users" );
}else{
super.doAddUser( userName, credential, roleList, claims, profileName, requirePasswordChange );
}
}
}
代码有效。当我尝试从界面插入多个用户 > 5 时,界面给我异常消息 "Reached the maximum number of global users".
但是当我尝试通过 SCIM 添加一个用户超过 5 个用户时,我收到消息:
{"Errors":[{"description":"Error in adding the user: mrossi to the user store..","code":"500"}]}
嗯,在这一点上我需要得到正确的消息异常 "Reached the maximum number of global users" 而不是一般消息 "Error in adding the user"。
有办法吗?
谢谢。
您只需对 SCIM 提供程序组件进行少量代码修改。
您使用的 WSO2 Identity Server 的版本是多少,以便我可以指出您
请参考下文link [1]。在 SCIMUserManager class 行 159 中,将 "Error in adding the user: " + user.getUserName() + " 更改为用户存储.. 到 e.getMessage() 并替换 wso2.war in repository/deployment/server/webapps同时删除wso2目录
如果您在构建特定组件时遇到问题。你可以试试 [a] Identity Server 下一个版本。
使用 maven 构建它,你可以在 "product-is/modules/distribution/target".
中找到分布
我正在为 wso2is 编写一个简单的自定义用户存储管理器。
这是代码:
public class CustomJDBCUserStoreManager extends JDBCUserStoreManager {
private static Log log = LogFactory.getLog(CustomJDBCUserStoreManager.class);
public CustomJDBCUserStoreManager() {
}
public CustomJDBCUserStoreManager(org.wso2.carbon.user.api.RealmConfiguration realmConfig,
Map<String, Object> properties,
ClaimManager claimManager,
ProfileConfigurationManager profileManager,
UserRealm realm, Integer tenantId)
throws UserStoreException {
super(realmConfig, properties, claimManager, profileManager, realm, tenantId, false);
}
@Override
public void doAddUser(String userName, Object credential, String[] roleList,
Map<String, String> claims, String profileName,
boolean requirePasswordChange) throws UserStoreException {
String[] users = super.doListUsers( "*", -1);
int nUser = users.length;
if (nUser > 5){
throw new UserStoreException( "Reached the maximum number of global users" );
}else{
super.doAddUser( userName, credential, roleList, claims, profileName, requirePasswordChange );
}
}
}
代码有效。当我尝试从界面插入多个用户 > 5 时,界面给我异常消息 "Reached the maximum number of global users".
但是当我尝试通过 SCIM 添加一个用户超过 5 个用户时,我收到消息:
{"Errors":[{"description":"Error in adding the user: mrossi to the user store..","code":"500"}]}
嗯,在这一点上我需要得到正确的消息异常 "Reached the maximum number of global users" 而不是一般消息 "Error in adding the user"。
有办法吗?
谢谢。
您只需对 SCIM 提供程序组件进行少量代码修改。 您使用的 WSO2 Identity Server 的版本是多少,以便我可以指出您
请参考下文link [1]。在 SCIMUserManager class 行 159 中,将 "Error in adding the user: " + user.getUserName() + " 更改为用户存储.. 到 e.getMessage() 并替换 wso2.war in repository/deployment/server/webapps同时删除wso2目录
如果您在构建特定组件时遇到问题。你可以试试 [a] Identity Server 下一个版本。
使用 maven 构建它,你可以在 "product-is/modules/distribution/target".
中找到分布