哪些技术和库可用于JSF安全性?我想保护 JSF 应用程序的管理页不被公共访问。
这是一个相当困难的问题,但这些天我会选择Spring Security或Apache Shiro。如果你不使用Spring,我会看看Shiro。设置和使用起来都非常容易。也很少有教程,比如BalusC的这个。
另一种选择是Realms,它可以具有特定于容器的设置(Tomcat,Glassfish等),这将使它们不可移植。您还可以使用相位侦听器,它可以是非常简洁的方式来保护小型项目(如果您的应用程序很小,我会选择此选项)。还有其他框架和解决方法,尝试谷歌更多关于Java EE安全性的信息,你会看到。
你可以简单地使用 spring:
在pom.xml
中添加 spring 安全依赖项,然后更改 springSecurity-taglibs.xml(添加函数名称,如 areAnyGranted)
然后,在您的web.xml
中添加上下文参数:
<context-param>
<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
<param-value>/WEB-INF/springSecurity-taglibs.xml</param-value>
</context-param>
之后,在应用程序上下文安全性中添加角色.xml
<security:intercept-url pattern="/pages/admin.xhtml" access="ROLE_ADMIN" />