检票口授权实例化



Wicket中,我必须使用@AuthorizeInstantiation来限制基于角色的访问。 否则允许所有人访问。

我想要反向行为:默认情况下限制所有页面(仅在指定@AuthorizeInstantiation时才允许)

怎么做?

目前您使用委托给AnnotationsRoleAuthorizationStrategy的 RolesAuthorizationStrategy。它的代码说:

@Override
public <T extends IRequestableComponent> boolean isInstantiationAuthorized(
final Class<T> componentClass)
{
// We are authorized unless we are found not to be
boolean authorized = true;
...

目前,我认为除了创建一个以authorized = false开头然后执行相同操作的自定义IAuthorizationStrategy之外,别无他法。

您可以在 Wicket JIRA 上创建一个票证,使此初始值成为从构造函数参数初始化的成员字段。这样,您无需复制代码,就像new AnnotationsRoleAuthorizationStrategy(false)一样简单

您可以做的是在包级别指定@AuthorizeInstantiation

package-info.java

@AuthorizeInstantiation("ADMIN")
package your_domain.your_app.your_package;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;

但这不适用于子包。

最新更新