我正在尝试使用WSO2 Identity Server 5.0.0 UserInformationRecoveryService,但在调用“registerUser()”时似乎无法正确处理无效密码。我希望该服务返回一些信息,通知客户端密码无效,但我得到500错误,并出现以下异常:
org.wso2.carbon.identity.mgt.stub.UserInformationRecoveryServiceIdentityMgtServiceExceptionException:UserInformationRecoveryServiceIdentityMgtServiceExceptionException
该异常不提供有意义的消息。
wso2carbon日志清楚地将问题记录为:
“错误 - 违反密码模式政策。密码应包含数字[0-9],小写字母[az],大写字母[AZ],!@#$%& *字符之一{ org.wso2.carbon.identity.mgt.IdentityMgtEventListener}“
SOAP服务不应该返回有关无效密码的一些有用信息吗?实际上,我不能假设抛出的异常对于无效密码是唯一的,并在客户端提供有意义的消息。
这是一个错误吗?有什么方法可以从肥皂服务中获得适当的消息吗?
感谢。 本
答案 0 :(得分:1)
我知道这已经过时了,但我刚刚完成了同样的设置。
这不是一个错误。只是他们选择的实施。我同意开箱即用,他们的错误信息缺乏。在这个实例中,只需在客户端添加一些javascript文本验证,而不是摆弄SOAP响应以获取返回的错误消息。
<script type="text/javascript">
var re = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*])/;
function doSubmit() {
var pass = document.getElementById("password").value
var confPass = document.getElementById("confirmPassword").value
if (pass != confPass) {
alert('Password do not match. Please correct');
}
else if (!re.test(pass)){
alert('Password must contain at least one lowercase letter, an uppercase letter, a number, and one of (!@#$%&*). Please correct');
}
else {
document.getElementById("resetPasswordForm").submit();
}
}