在Wicket
中,我必须使用@AuthorizeInstantiation
基于角色来限制访问。否则允许所有人访问。
我想要反向行为:默认限制所有页面(仅在@AuthorizeInstantiation
指定时允许)
怎么做?
在Wicket
中,我必须使用@AuthorizeInstantiation
基于角色来限制访问。否则允许所有人访问。
我想要反向行为:默认限制所有页面(仅在@AuthorizeInstantiation
指定时允许)
怎么做?
目前您使用 RolesAuthorizationStrategy 委托给AnnotationsRoleAuthorizationStrategy
. 它的代码说:
@Override
public <T extends IRequestableComponent> boolean isInstantiationAuthorized(
final Class<T> componentClass)
{
// We are authorized unless we are found not to be
boolean authorized = true;
...
IAuthorizationStrategy
目前,我认为除了创建一个开始authorized = false
然后做同样的自定义之外别无他法。
您可以在 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;
不过,这不适用于子包。