use of org.apache.wicket.authorization.UnauthorizedInstantiationException in project wicket by apache.
the class SourcesPage method getPageTargetClass.
private Class<? extends Page> getPageTargetClass() {
if (page == null) {
String pageParam = getPageParameters().get(PAGE_CLASS).toOptionalString();
if (pageParam == null) {
log.error("key: {} is null.", PAGE_CLASS);
getRequestCycle().replaceAllRequestHandlers(new ErrorCodeRequestHandler(404, "Could not find sources for the page you requested"));
} else if (!pageParam.startsWith("org.apache.wicket.examples")) {
log.error("user is trying to access class: {} which is not in the scope of org.apache.wicket.examples", pageParam);
throw new UnauthorizedInstantiationException(getClass());
}
page = WicketObjects.resolveClass(pageParam);
if (page == null) {
getRequestCycle().replaceAllRequestHandlers(new ErrorCodeRequestHandler(404, "Could not find sources for the page you requested"));
}
}
return page;
}
use of org.apache.wicket.authorization.UnauthorizedInstantiationException in project wicket by apache.
the class AnnotationsRoleTest method testNotAuthorized.
/**
* @throws Exception
*/
@Test
public void testNotAuthorized() throws Exception {
WicketTester tester = new WicketTester();
tester.getApplication().getSecuritySettings().setAuthorizationStrategy(new RoleAuthorizationStrategy(new UserRolesAuthorizer("USER")));
final class Listener implements IUnauthorizedComponentInstantiationListener {
private boolean eventReceived = false;
@Override
public void onUnauthorizedInstantiation(Component component) {
eventReceived = true;
}
}
Listener listener = new Listener();
tester.getApplication().getSecuritySettings().setUnauthorizedComponentInstantiationListener(listener);
try {
tester.startPage(AdminPage.class);
assertTrue("an authorization exception event should have been received", listener.eventReceived);
} catch (Exception e) {
if (!(e.getCause() instanceof InvocationTargetException && ((InvocationTargetException) e.getCause()).getTargetException() instanceof UnauthorizedInstantiationException)) {
throw e;
}
}
}
Aggregations