简短问题。在执行任何声明式安全检查之前,如何执行servlet过滤器?Servlet过滤器(自动登录)优先于声明性安全检查
长问题。对于我的Web应用程序,我试图使用服务器声明式安全来管理我所有的安全需求:我已设置<url-pattern>/secure/*</url-pattern>
与<auth-method>FORM</auth-method>
和<form-login-page>/sign-in.xhtml</form-login-page>
的安全约束。
为了提供一个基于cookie的“记住我”功能,我设置了一个servlet过滤器,它拦截每个请求,检查用户是否未登录,检查他是否可以自动登录cookie),最终将他记录为使用基于servlet的登录。
<filter-mapping>
<filter-name>CustomLoginFilter</filter-name>
<url-pattern>*.xhtml</url-pattern>
</filter-mapping>
现在,如果用户打开他的浏览器并连接到mysite.com
一切正常。但是,如果用户打开他的浏览器,使像我mysite.com/secure/secret.xhtml
遵守以下行为直接要求的东西:
- GET /secure/secret.xhtml
- 数in.xhtml的支持Bean实例化( FacesContext的可用)
- 的CustomLoginFilter.doFilter()被调用,(FacesContext的是NULL)
这显然阻碍了全部过程。我找不到通过服务器“声明式安全过滤器”(或其他)给我的CustomLoginFilter优先的方法;更改声明的web.xml顺序不会帮助太...任何想法?谢谢!
是,'#HttpServletRequest的登录()'已经是基本的登录方法。谢谢,这是一个很好的建议,可能是避免限制简单的唯一方法。 *我想借此机会亲自感谢您提供的所有优质答案和文章(我在前几周已经从他们那里学到了很多)!! * – Fabio
欢迎您:) – BalusC