我正在使用wicket 1.4.9并实现了spring + wicket auth-role并使用基于页面上角色的@AuthorizeInstantiation.我有多个自定义角色.
我已按照此链接实现基础知识:https: //cwiki.apache.org/WICKET/spring-security-and-wicket-auth-roles.html
之后,我实现了自己的UserDetailsService,从数据库中拥有自己的角色/用户.
现在,我如何使用组件(如链接,按钮)对角色施加控制?像链接A只能由SUPER_USER,DR_MANAGER访问.(角色来自数据库).
我这样做了它似乎工作,但这是做这个的好方法吗?OrbitWebSession的类型为AuthenticatedWebSession.
@Override
public boolean isVisible() {
if(OrbitWebSession.get().getRoles().hasRole("SUPER_USER")){
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
压倒isVisible一直是一个主要的痛苦.MetaDataRoleAuthorizationStrategy相反,看一看.您可以authorize(Component component, Action action, String roles)使用Action RENDER,以及要允许的角色.这样,只要在Web应用程序中注册了授权策略,组件就会自动隐藏其他角色.基本上它与Holms的答案完全相同,除了你不必任何子类.