使用wicket auth-role授权wicket组件

Sha*_*iar 4 wicket

我正在使用wicket 1.4.9并实现了spring + wicket auth-role并使用基于页面上角色的@AuthorizeInstantiation.我有多个自定义角色.

我已按照此链接实现基础知识:https: //cwiki.apache.org/WICKET/spring-security-and-wicket-auth-roles.html

之后,我实现了自己的UserDetailsS​​ervice,从数据库中拥有自己的角色/用户.

现在,我如何使用组件(如链接,按钮)对角色施加控制?像链接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)

谢谢.

Mar*_*ers 7

压倒isVisible一直是一个主要的痛苦.MetaDataRoleAuthorizationStrategy相反,看一看.您可以authorize(Component component, Action action, String roles)使用Action RENDER,以及要允许的角色.这样,只要在Web应用程序中注册了授权策略,组件就会自动隐藏其他角色.基本上它与Holms的答案完全相同,除了你不必任何子类.