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

时间:2014-12-12 03:48:38

标签: wso2 wso2is

我正在尝试使用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服务不应该返回有关无效密码的一些有用信息吗?实际上,我不能假设抛出的异常对于无效密码是唯一的,并在客户端提供有意义的消息。

这是一个错误吗?有什么方法可以从肥皂服务中获得适当的消息吗?

感谢。 本

1 个答案:

答案 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();
    }
}