我已经在我的web应用程序上安装和运行了PicketLink,但是我似乎不能按组或角色保护资源。(org.picketlink.authentication.web.AuthenticationFilter) PicketLink AuthenticationFilter没有提供任何方法来说明哪个url模式属于哪个组或角色。如何保护管理目录,以便只有管理组中的用户才能访问它?现在,如果您已登录,则可以访问所有内容。
web.xml文件:
<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>我试图创建我自己的自定义AuthenticationFilter,但我做不到,我真的希望我能做一些像春天那样的事情。类似于此或使用IDM函数(如hasRole或isMember):
<intercept-url pattern="/admin/*" access="ADMIN" />
<intercept-url pattern="/member/*" access="ADMIN,STANDARDUSER" />发布于 2014-11-23 23:05:20
除非我完全误解了您想要做的事情,否则我认为您可以通过编程配置接口来做您想做的事情。见文件第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");
}
}发布于 2014-07-31 23:23:24
正如前面所说的,AuthenticationFilter只涉及身份验证。
PicketLink团队正在开发一个完整的Security支持,它将为应用程序的URI提供角色和基于组的授权。
现在,我建议你创建自己的过滤器。
https://stackoverflow.com/questions/24657169
复制相似问题