我们在OpenAM中使用自定义数据库数据存储。此存储对Oracle数据库进行身份验证。 现在,有许多可能的原因导致身份验证失败。该帐户可能在Oracle中被锁定,或者密码可能已过期。 数据存储捕获SQLException,但如何将原因传播到OpenAM UI?
我可以从authenticate()抛出一个AuthLoginException,但是在它到AMLoginContext的路上,它被包装,AMLoginContext类似于忽略了AuthLoginExceptionS的错误代码。含义:AMLoginContext不会从异常中读取错误代码,但会尝试确定错误代码本身,通常只是将AMAuthErrorCode.AUTH_LOGIN_FAILED置于登录状态。
如何让UI显示登录问题的原因?
答案 0 :(得分:0)
正如伯恩哈德所说,不建议这样做。但是,从数据存储中,您可以获得一个Debug实例(com.sun.identity.shared.debug.Debug),并且可以记录异常,它们将出现在[AM_INSTALL_DIR] / openam / debug中。
编辑:您可以在整个OpenAM源代码中找到这样做的示例。