首页 文章

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

提问于
浏览
1

我正在尝试使用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 回答

  • 1

    我知道这已经过时了,但我刚刚完成了同样的设置 .

    它确实不是一个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();
        }
    }
    

相关问题