package component.authorization.strategy.example; import org.apache.wicket.Component; import org.apache.wicket.RestartResponseAtInterceptPageException; import org.apache.wicket.Session; import org.apache.wicket.request.component.IRequestableComponent; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.request.resource.IResource; import authorization.strategy.api.ComponentAuthorizationStrategy; public class ApplicationAuthorizationStrategy extends ComponentAuthorizationStrategy { @Override protected boolean isEditable(final Component component) { return ApplicationRights.bind(component).isEditable(); } @Override protected boolean isRenderable(final Component component) { return ApplicationRights.bind(component).isRenderable(); } public boolean isResourceAuthorized(final IResource resource, final PageParameters parameters) { return false; } @Override protected <T extends IRequestableComponent> boolean onInstantiationAuthorized( final Class<T> componentClass) { if (((WicketSession)Session.get()).getUser() != null) { return true; } if (LoginPage.class.isAssignableFrom(componentClass)) { return true; } throw new RestartResponseAtInterceptPageException(LoginPage.class); } }