Java 如何自定义PicketLink AuthenticationFilter?
我已经在我的web应用程序上安装并运行了PicketLink,但似乎无法按组或角色保护文件夹等资源。PicketLink AuthenticationFilter(org.PicketLink.authentication.web.AuthenticationFilter)不提供任何方式来说明哪个url模式属于哪个组或角色。如何保护管理员目录,以便只有管理员组中的用户才能访问它?现在,如果您登录,您可以访问所有内容 web.xml文件:Java 如何自定义PicketLink AuthenticationFilter?,java,authentication,authorization,picketlink,Java,Authentication,Authorization,Picketlink,我已经在我的web应用程序上安装并运行了PicketLink,但似乎无法按组或角色保护文件夹等资源。PicketLink AuthenticationFilter(org.PicketLink.authentication.web.AuthenticationFilter)不提供任何方式来说明哪个url模式属于哪个组或角色。如何保护管理员目录,以便只有管理员组中的用户才能访问它?现在,如果您登录,您可以访问所有内容 web.xml文件: <filter>
<filter>
<filter-name>PicketLinkAuthenticationFilter</filter-name>
<filter-class>org.picketlink.authentication.web.AuthenticationFilter</filter-class>
<init-param>
<param-name>authType</param-name>
<param-value>FORM</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PicketLinkAuthenticationFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
<url-pattern>/standarduser/*</url-pattern>
</filter-mapping>
PicketLink身份验证筛选器
org.picketlink.authentication.web.AuthenticationFilter
作者类型
形式
PicketLink身份验证筛选器
/管理员/*
/标准用户/*
我试图创建自己的自定义AuthenticationFilter,但无法。我真希望我能像春天那样做。类似于以下内容或使用诸如hasRole或isMember之类的IDM函数:
<intercept-url pattern="/admin/*" access="ADMIN" />
<intercept-url pattern="/member/*" access="ADMIN,STANDARDUSER" />
如前所述,AuthenticationFilter仅与身份验证有关 PicketLink团队正在使用一个完整的Servlet安全支持,它将为应用程序的URI提供基于角色和组的授权
现在,我建议您创建自己的筛选器。如前所述,AuthenticationFilter只是关于身份验证的 PicketLink团队正在使用一个完整的Servlet安全支持,它将为应用程序的URI提供基于角色和组的授权
现在,我建议您创建自己的过滤器。除非我完全误解了您的意图,否则我认为您可以通过编程配置界面完成您想要的操作
除非我完全误解了您要做的事情,否则我认为您可以通过编程配置界面做您想做的事情
我认为这是不可能的。因此,我制作了自己的自定义筛选器,以在picketlink筛选器之后检查组和角色。我认为这是不可能的。因此,我制作了自己的自定义筛选器,用于在picketlink筛选器之后检查组和角色。真棒,这在2.6版下不可用,但现在已添加到2.7版。我试试看!我的项目目前正在使用一个自定义过滤器,也让我做一些其他自定义的事情。谢谢它的工作!如何为每个路径授权多个组和角色?.authorizeWith().group(“用户,管理员”)真棒,这在2.6版下不可用,但现在已添加到2.7版。我试试看!我的项目目前正在使用一个自定义过滤器,也让我做一些其他自定义的事情。谢谢它的工作!如何为每个路径授权多个组和角色?.authorizeWith().group(“用户、管理员”)
public class HttpSecurityConfiguration {
public void configureHttpSecurity(@Observes SecurityConfigurationEvent event) {
SecurityConfigurationBuilder builder = event.getBuilder();
builder
.http()
.forPath("/*.jsf")
.authenticateWith()
.form()
.loginPage("/login.jsf")
.errorPage("/loginFailed.jsf")
.forPath("/admin/*")
.authorizeWith()
.role("Administrator");
}
}