Module org.apache.wicket.core
Class CompoundAuthorizationStrategy
java.lang.Object
org.apache.wicket.authorization.strategies.CompoundAuthorizationStrategy
- All Implemented Interfaces:
IAuthorizationStrategy
- Direct Known Subclasses:
RoleAuthorizationStrategy
Compound implementation of the IAuthorizationStrategy that lets you chain two or more strategies
together.
- Author:
- ivaynberg
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.wicket.authorization.IAuthorizationStrategy
IAuthorizationStrategy.AllowAllAuthorizationStrategy
-
Field Summary
Fields inherited from interface org.apache.wicket.authorization.IAuthorizationStrategy
ALLOW_ALL
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
add
(IAuthorizationStrategy strategy) Adds a strategy to the chainfinal boolean
isActionAuthorized
(Component component, Action action) Gets whether the given action is permitted.final <T extends IRequestableComponent>
booleanisInstantiationAuthorized
(Class<T> componentClass) Checks whether an instance of the given component class may be created.boolean
isResourceAuthorized
(IResource resource, PageParameters parameters) Checks whether a request with some parameters is allowed to a resource.
-
Constructor Details
-
CompoundAuthorizationStrategy
public CompoundAuthorizationStrategy()
-
-
Method Details
-
add
Adds a strategy to the chain- Parameters:
strategy
- Strategy to add
-
isInstantiationAuthorized
public final <T extends IRequestableComponent> boolean isInstantiationAuthorized(Class<T> componentClass) Description copied from interface:IAuthorizationStrategy
Checks whether an instance of the given component class may be created. If this method returns false, theIUnauthorizedComponentInstantiationListener
that is configured in thesecurity settings
will be called. The default implementation of that listener throws aUnauthorizedInstantiationException
.If you wish to implement a strategy that authenticates users which cannot access a given Page (or other Component), you can simply throw a
RestartResponseAtInterceptPageException
in your implementation of this method.- Specified by:
isInstantiationAuthorized
in interfaceIAuthorizationStrategy
- Parameters:
componentClass
- The component class to check- Returns:
- Whether the given component may be created
- See Also:
-
isActionAuthorized
Description copied from interface:IAuthorizationStrategy
Gets whether the given action is permitted. If it is, this method should return true. If it isn't, this method should either return false or - in case of a serious breach - throw a security exception. Returning is generally preferable over throwing an exception as that doesn't break the normal flow.- Specified by:
isActionAuthorized
in interfaceIAuthorizationStrategy
- Parameters:
component
- The component to be acted uponaction
- The action to authorize on the component- Returns:
- Whether the given action may be taken on the given component
- See Also:
-
isResourceAuthorized
Description copied from interface:IAuthorizationStrategy
Checks whether a request with some parameters is allowed to a resource.- Specified by:
isResourceAuthorized
in interfaceIAuthorizationStrategy
- Parameters:
resource
- The resource that should be processedparameters
- The request parameters- Returns:
true
if the request to this resource is allowed.
-