如何自定义PicketLink AuthenticationFilter?

我在我的Web应用程序上安装并运行了PicketLink,但似乎无法按组或角色保护文件夹等资源。 PicketLink AuthenticationFilter(org.picketlink.authentication.web.AuthenticationFilter)没有提供任何方式来说明哪个url-pattern属于哪个组或角色。 如何保护管理目录,以便只有管理员组中的用户可以访问它? 现在,如果您已登录,则可以访问所有内容。

web.xml文件:

 PicketLinkAuthenticationFilter org.picketlink.authentication.web.AuthenticationFilter  authType FORM    PicketLinkAuthenticationFilter /admin/* /standarduser/*  

我试图创建自己的自定义AuthenticationFilter,但我不能。 我真的希望我能在spring做点什么。 像这样或使用像hasRole或isMember这样的IDM函数:

    

除非我完全误解了你想要做的事情,否则我认为你可以通过编程配置界面做你想做的事。 请参阅文档部分12.2

 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"); } } 

如前所述,AuthenticationFilter仅与身份validation有关。

PicketLink团队正在开发一个完整的Servlet安全支持,它将为您的应用程序的URI提供基于角色和组的授权。

现在,我建议你创建自己的filter。