如何停止日志记录JBOSS 7上的登录失败javax.security.auth.login.FailedLoginException

时间:2012-12-16 06:17:07

标签: authentication jsf-2 jboss7.x jaas

在我的jsf2项目中我在jboss 7.1上使用jaas,当我登录错误的密码/ id时,jboss抛出:ERROR [org.jboss.security.authentication.JBossCachedAuthenticationManager] javax.security.auth.login.FailedLoginException: Password Incorrect/Password Required

我编写了ExceptionHandlerFactory但在异常登录jboss控制台后调用了ExceptionHandlerFactory,任何人都知道如何捕获此异常?我想在登录控制台之前抓住它,我想要打印代码错误,如例外:A-0014

2 个答案:

答案 0 :(得分:0)

实际上没有编程方法可以捕获此异常。

这是一个管理挑战,因为错误的用户/密码调用的每个实例都将转储一个巨大的堆栈跟踪并在ERROR级别填充容器日志。

我对自定义登录模块有类似的情况,该模块扩展了org.jboss.security.auth.spi.UsernamePasswordLoginModule。 在某些时候,覆盖的超类方法“validatePassword”返回false。 这会被“login()”方法的父实现捕获,该方法(错误地)声明“javax.security.auth.login.FailedLoginException:Password Incorrect / Password Required”。在我的情况下,从未对身份验证服务进行网络连接。

所以实际发生的是org.jboss.security.authentication.JBossCachedAuthenticationManager类(内部)是执行日志记录的罪魁祸首(在ERROR级别,过滤掉也是有问题的。)

截至2012年7月的JBoss正在跟踪(并且仍然是JBoss AS 7.1.2)一个“增强”以允许捕获它。这对于远程调用类型操作也是有问题的。

答案 1 :(得分:-2)

希望此Jboss comunity answer 链接可以帮助您处理异常

您可以在登录方法中向您抛出消息,例如Exception:A-0014