WSO2 Identity Server-UserInformationRecoveryService未返回无效密码所需的错误消息

WSO2 Identity Server-UserInformationRecoveryService未返回无效密码所需的错误消息,wso2,wso2is,Wso2,Wso2is,我试图使用WSO2 Identity Server 5.0.0 UserInformationRecoveryService,但调用“registerUser()”时,它似乎无法正确处理无效密码。我希望服务返回一些信息,通知客户端密码无效,但我得到一个500错误和以下异常: org.wso2.carbon.identity.mgt.stub.UserInformationRecoveryServiceIdentityMgtServiceExceptionException:UserInforma

我试图使用WSO2 Identity Server 5.0.0 UserInformationRecoveryService,但调用“registerUser()”时,它似乎无法正确处理无效密码。我希望服务返回一些信息,通知客户端密码无效,但我得到一个500错误和以下异常:

org.wso2.carbon.identity.mgt.stub.UserInformationRecoveryServiceIdentityMgtServiceExceptionException:UserInformationRecoveryServiceIdentityMgtServiceExceptionException

异常没有提供有意义的消息

wso2carbon日志清楚地将问题记录为:

“错误-违反了密码模式策略。密码应包含数字[0-9],小写字母[a-z],大写字母[a-z],其中一个!@#$%&*字符{org.wso2.carbon.identity.mgt.IdentityMgtEventListener}”

SOAP服务不应该返回一些关于无效密码的有用信息吗?事实上,我不能假设抛出的异常对于无效密码是唯一的,并在客户端提供有意义的消息

这是虫子吗?是否有任何方法可以从soap服务获取适当的消息

谢谢。
Ben

我知道这很旧,但我刚刚完成了相同场景的设置

确切地说,这不是一个bug。这只是他们的实施选择。我同意他们缺少现成的错误信息。在这个实例中,只需在客户端添加一些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();
    }
}

变量re=/(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[!@$%&*])/;
函数doSubmit(){
var pass=document.getElementById(“密码”).value
var confPass=document.getElementById(“confirmPassword”).value
如果(通过!=确认通过){
警报(“密码不匹配,请更正”);
} 
否则,如果(!重新测试(通过)){
警报('密码必须至少包含一个小写字母、一个大写字母、一个数字和(!@$%&*)中的一个。请更正');
}
否则{
document.getElementById(“resetPasswordForm”).submit();
}
}