2013-04-13 46 views
1

我在我的jsf应用程序(j_security)中使用基于容器的安全性,使用glassfish为受保护页面上的用户进行身份验证。但是,在应用程序中,我有更多受限制的页面,即使用户登录时也需要重新输入密码。创建多个约束不会有帮助,因为会话已经生效。安全双重检查

这是如何实现的?

回答

1

您可以使用servlet过滤器说“SecondAuth”,您可以通过引用会话标志来检查用户是否已第二次验证身份;如果没有,你可以重定向到第二个认证页面。请记住将请求的URL存储在会话变量中。一旦用户再次成功认证,您可以重定向到所请求的页面。

您可以通过如下web.xml配置保护的多个页面:

的web.xml

<filter> 
    <filter-name>secondauth</filter-name> 
    <filter-class>com.auth.SecondAuth</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>secondauth</filter-name> 
    <url-pattern>/app/secure1.jsp</url-pattern> 
    <url-pattern>/app/secure2.jsp</url-pattern> 
</filter-mapping> 

关于如何使用Servlet过滤器,你可以参考How to use a servlet filter in Java to change an incoming servlet request url?