【发布时间】:2013-04-05 23:17:36
【问题描述】:
我在我的 jsf 应用程序 (j_security) 中使用基于容器的安全性,使用 glassfish 来验证用户的安全页面。但是,在应用程序中,我有更多受限页面,即使用户登录也需要重新输入密码。创建多个约束将无济于事,因为会话已经生效。
如何做到这一点?
【问题讨论】:
标签: security jsf glassfish j-security-check
我在我的 jsf 应用程序 (j_security) 中使用基于容器的安全性,使用 glassfish 来验证用户的安全页面。但是,在应用程序中,我有更多受限页面,即使用户登录也需要重新输入密码。创建多个约束将无济于事,因为会话已经生效。
如何做到这一点?
【问题讨论】:
标签: security jsf glassfish j-security-check
您可以使用 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?
【讨论】: