j_security_check 过滤器在 jboss eap 6.4 中不起作用
Posted
技术标签:
【中文标题】j_security_check 过滤器在 jboss eap 6.4 中不起作用【英文标题】:j_security_check filter is not working in jboss eap 6.4 【发布时间】:2019-11-21 03:17:22 【问题描述】:我在互联网上搜索了一个解决方案,但找不到任何东西。
我的问题是关于在我的 login.jsp 上使用 j_security_check 来过滤并将其转发到 postloginfilter.java。
为此,我在 web.xml 中编写了这些行
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login.jsp</form-error-page>
</form-login-config>
</login-config>
<filter-mapping>
<filter-name>PostLoginFilter</filter-name>
<url-pattern>/j_security_check</url-pattern>
</filter-mapping>
但即使当我这样称呼前锋时:
final String requestStr = "/j_security_check?j_username=" + reqUserId
+ "&j_password="+ reqPassword;
req.getRequestDispatcher(requestStr).forward(req, resp);
它根本没有进入 postloginfilter.java。并向我展示了一个空白页。
我想要的是 postloginfilter 完成这项工作并遵循 web.xml 上列出的链。
我也看不出这个过滤器是否也有效。
<filter-mapping>
<filter-name>PostLoginFilter</filter-name>
<url-pattern>/CreateConnectionAndGetEntityNames.do</url-pattern>
</filter-mapping>
CreateConnectionAndGetEntityNames 实际上是显示表单的那个。但是当我去那里时,断点在 postloginfilter 中没有生效。
可能是什么原因,我该如何解决这个问题?
提前致谢。
【问题讨论】:
【参考方案1】:据我所知,FormAuthenticator 是作为 JBossWeb 阀门实现的。因此,预计 JBoss j_security_check 请求不会调用任何应用程序 servlet 过滤器。您可以改为将此类过滤器实现为阀门。
【讨论】:
您好,您可以在 jboss 上分享有关 Valve/s 的文档或页面吗?谢谢 你可以参考以下关于 Valve api 的 JBossWeb 文档:docs.jboss.org/jbossweb/latest/api/org/apache/catalina/valves/… 不,正如我所见,这与我的问题无关。我仍然需要像其他人在他们的 jboss 环境中那样使用 j_security_check。我看到了这样做的例子。以上是关于j_security_check 过滤器在 jboss eap 6.4 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如果 JSF 页面受 j_security_check 保护,则不会在 ajax 请求上引发 ViewExpiredException
J_security_check 在 Firefox 4 中失败
如何使用 j_security_check 在 React.JS 应用程序上对用户进行身份验证