@Override public void redirectTo(String uri) { use(page()).redirectTo(uri); }
public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException { if (result.used()) { logger.debug("Request already dispatched and commited somewhere else, not forwarding."); return; } // TODO: maybe the response.isCommited is true, we should warn before // trying to forward logger.debug("forwarding to the dafault page for this logic"); result.use(Results.page()).defaultView(); }
@Override public void forwardTo(String uri) { use(page()).forwardTo(uri); }
@Override public <T> T of(Class<T> controller) { return use(page()).of(controller); }
@Override public <T> T onErrorUsePageOf(Class<T> controller) { return onErrorUse(page()).of(controller); }
public void forward(@Observes RequestSucceded event) { if (result.used() || event.getResponse().isCommitted()) { logger.debug("Request already dispatched and commited somewhere else, not forwarding."); return; } logger.debug("forwarding to the dafault page for this logic"); result.use(Results.page()).defaultView(); } }
@Override public <T> Serializer from(T object) { result.include(extractor.nameFor(object.getClass()), object); result.use(page()).defaultView(); return new IgnoringSerializer(); }
@Override public <T> Serializer from(T object, String alias) { result.include(alias, object); result.use(page()).defaultView(); return new IgnoringSerializer(); }
@Test public void whenRefererDontMatchAControllerShouldForwardToPage() throws Exception { PageResult page = mock(PageResult.class); when(request.getHeader("Referer")).thenReturn("http://localhost:8080/vraptor/no-controller"); when(request.getContextPath()).thenReturn("/vraptor"); when(router.parse("/no-controller", HttpMethod.GET, request)).thenThrow(new ControllerNotFoundException()); doReturn(page).when(result).use(page()); refererResult.forward(); verify(page).forwardTo("/no-controller"); }
public void method() { result.use(Results.page()).defaultView(); }
@Override public void forward() throws IllegalStateException { String referer = getReferer(); try { ControllerMethod method = router.parse(referer, HttpMethod.GET, request); executeMethod(method, result.use(logic()).forwardTo(method.getController().getType())); } catch (ControllerNotFoundException | MethodNotAllowedException e) { logger.warn("Could not find or doesn't allowed to get controller method", e); result.use(page()).forwardTo(referer); } }
@Override public void redirect() throws IllegalStateException { String referer = getReferer(); try { ControllerMethod method = router.parse(referer, HttpMethod.GET, request); executeMethod(method, result.use(logic()).redirectTo(method.getController().getType())); } catch (ControllerNotFoundException | MethodNotAllowedException e) { logger.warn("Could not find or doesn't allowed to get controller method", e); result.use(page()).redirectTo(referer); } }
@Post("/auth/facebook") public void login(final String profile) { LOGGER.debug("logging in user " + profile); final SystemUser user = facebook.connectedOrFindUserFor(profile); SystemUser toLogin = facebook.createOrConnectUser(profile, user); if (toLogin == null) { validator.add(new I18nMessage("vraptor.inexisting_facebook_user", "vraptor.inexisting_facebook_user")); validator.onErrorUse(page()).redirectTo("/"); } else { auth.authenticate(toLogin); } result.redirectTo("/"); }
@Post("/signin") public void signin(String email, String password, String urlAfterLogin, String uriOnError) { boolean isAuthenticated = authenticator.authenticate(email, password); if (!isAuthenticated) { validator.add(new I18nMessage("vraptor.mauth.signin.fail", "vraptor.mauth.signin.fail")); result.include("email", email); result.include("lastUrl", urlAfterLogin); if(uriOnError == null || uriOnError.equals("") || !uriVerifier.sameDomainAsMe(uriOnError)) { validator.onErrorUse(page()).redirectTo("/"); } else { validator.onErrorUse(page()).redirectTo(uriOnError); } } if (urlAfterLogin == null || !uriVerifier.sameDomainAsMe(urlAfterLogin)) { result.redirectTo("/dashboard"); } else { result.redirectTo(urlAfterLogin); } }