我在我的 jsf 应用程序 (j_security) 中使用基于容器的安全性,使用 glassfish 来验证用户的安全页面。但是,在应用程序中,我有更多受限页面,即使用户登录也需要重新输入密码。创建多个约束将无济于事,因为会话已经生效。
如何实现?
我在我的 jsf 应用程序 (j_security) 中使用基于容器的安全性,使用 glassfish 来验证用户的安全页面。但是,在应用程序中,我有更多受限页面,即使用户登录也需要重新输入密码。创建多个约束将无济于事,因为会话已经生效。
如何实现?
您可以使用 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 过滤器,您可以参考如何在 Java 中使用 servlet 过滤器来更改传入的 servlet 请求 url?