/** * Print the ModelAndView. */ protected void printModelAndView(@Nullable ModelAndView mav) throws Exception { this.printer.printValue("View name", (mav != null) ? mav.getViewName() : null); this.printer.printValue("View", (mav != null) ? mav.getView() : null); if (mav == null || mav.getModel().size() == 0) { this.printer.printValue("Model", null); } else { for (String name : mav.getModel().keySet()) { if (!name.startsWith(BindingResult.MODEL_KEY_PREFIX)) { Object value = mav.getModel().get(name); this.printer.printValue("Attribute", name); this.printer.printValue("value", value); Errors errors = (Errors) mav.getModel().get(BindingResult.MODEL_KEY_PREFIX + name); if (errors != null) { this.printer.printValue("errors", errors.getAllErrors()); } } } } }
@Test public void redirectView() throws Exception { RedirectView view = new RedirectView("/foo"); this.controller.setView(view); ModelAndView modelAndView = this.controller.handleRequest(this.request, this.response); assertSame(view, modelAndView.getView()); }
view = mv.getView(); if (view == null) { throw new ServletException("ModelAndView [" + mv + "] neither contains a view name nor a " +
(Authentication) principal, grantType ).getView();
@Override public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if (this.mavResolvers != null) { for (ModelAndViewResolver mavResolver : this.mavResolvers) { Class<?> handlerType = returnType.getContainingClass(); Method method = returnType.getMethod(); Assert.state(method != null, "No handler method"); ExtendedModelMap model = (ExtendedModelMap) mavContainer.getModel(); ModelAndView mav = mavResolver.resolveModelAndView(method, handlerType, returnValue, model, webRequest); if (mav != ModelAndViewResolver.UNRESOLVED) { mavContainer.addAllAttributes(mav.getModel()); mavContainer.setViewName(mav.getViewName()); if (!mav.isReference()) { mavContainer.setView(mav.getView()); } return; } } } // No suitable ModelAndViewResolver... if (this.modelAttributeProcessor.supportsReturnType(returnType)) { this.modelAttributeProcessor.handleReturnValue(returnValue, returnType, mavContainer, webRequest); } else { throw new UnsupportedOperationException("Unexpected return type: " + returnType.getParameterType().getName() + " in method: " + returnType.getMethod()); } }
return getImplicitGrantResponse(authorizationRequest).getView();
view = mv.getView(); if (view == null) { throw new ServletException("ModelAndView [" + mv + "] neither contains a view name nor a " +
@Test public void testValidOTPTakesToHomePage() throws Exception{ int code = 1234; when(userGoogleMfaCredentialsProvisioning.isValidCode(ArgumentMatchers.any(UserGoogleMfaCredentials.class), eq(code))).thenReturn(true); when(uaaAuthentication.getPrincipal()).thenReturn(new UaaPrincipal(userId, "Marissa", null, "uaa", null, null), null, null); when(mfaProviderProvisioning.retrieveByName(mfaProvider.getName(), IdentityZoneHolder.get().getId())).thenReturn(mfaProvider); when(userDb.retrieveUserByName("Marissa", "uaa")).thenReturn(new UaaUser(new UaaUserPrototype().withUsername("Marissa").withOrigin("uaa").withId("1234").withEmail("marissa@example.com"))); IdentityZoneHolder.get().getConfig().getMfaConfig().setEnabled(true).setProviderName(mfaProvider.getName()); SessionStatus sessionStatus = mock(SessionStatus.class); ModelAndView returnView = endpoint.validateCode( mock(Model.class), Integer.toString(code), mock(UserGoogleMfaCredentials.class), sessionStatus); assertEquals("/login/mfa/completed", ((RedirectView)returnView.getView()).getUrl()); verify(sessionStatus, times(1)).setComplete(); verifyMfaEvent(MfaAuthenticationSuccessEvent.class); }
@Override public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if (returnValue == null) { mavContainer.setRequestHandled(true); return; } ModelAndView mav = (ModelAndView) returnValue; if (mav.isReference()) { String viewName = mav.getViewName(); mavContainer.setViewName(viewName); if (viewName != null && isRedirectViewName(viewName)) { mavContainer.setRedirectModelScenario(true); } } else { View view = mav.getView(); mavContainer.setView(view); if (view instanceof SmartView && ((SmartView) view).isRedirectView()) { mavContainer.setRedirectModelScenario(true); } } mavContainer.setStatus(mav.getStatus()); mavContainer.addAllAttributes(mav.getModel()); }
MockHttpServletResponse response = new MockHttpServletResponse(); ModelAndView modelAndView = controller.handleRequest(request, response); assertSame(view, modelAndView.getView()); assertEquals(1, modelAndView.getModel().size()); Object reply = modelAndView.getModel().get("reply");
@Override public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if (this.mavResolvers != null) { for (ModelAndViewResolver mavResolver : this.mavResolvers) { Class<?> handlerType = returnType.getContainingClass(); Method method = returnType.getMethod(); Assert.state(method != null, "No handler method"); ExtendedModelMap model = (ExtendedModelMap) mavContainer.getModel(); ModelAndView mav = mavResolver.resolveModelAndView(method, handlerType, returnValue, model, webRequest); if (mav != ModelAndViewResolver.UNRESOLVED) { mavContainer.addAllAttributes(mav.getModel()); mavContainer.setViewName(mav.getViewName()); if (!mav.isReference()) { mavContainer.setView(mav.getView()); } return; } } } // No suitable ModelAndViewResolver... if (this.modelAttributeProcessor.supportsReturnType(returnType)) { this.modelAttributeProcessor.handleReturnValue(returnValue, returnType, mavContainer, webRequest); } else { throw new UnsupportedOperationException("Unexpected return type: " + returnType.getParameterType().getName() + " in method: " + returnType.getMethod()); } }
public Map<String, Object> handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView modelAndView = controller.handleRequest(request, response); if (modelAndView.getView() instanceof RedirectView) { RedirectView view = (RedirectView)modelAndView.getView(); response.sendRedirect(view.getUrl()); return new HashMap<>(); } else { return modelAndView.getModel(); } }
@Override public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if (returnValue == null) { mavContainer.setRequestHandled(true); return; } ModelAndView mav = (ModelAndView) returnValue; if (mav.isReference()) { String viewName = mav.getViewName(); mavContainer.setViewName(viewName); if (viewName != null && isRedirectViewName(viewName)) { mavContainer.setRedirectModelScenario(true); } } else { View view = mav.getView(); mavContainer.setView(view); if (view instanceof SmartView && ((SmartView) view).isRedirectView()) { mavContainer.setRedirectModelScenario(true); } } mavContainer.setStatus(mav.getStatus()); mavContainer.addAllAttributes(mav.getModel()); }
protected ModelAndView interceptOutOfBandRedirect(ModelAndView mav) { View view = mav.getView(); if (view instanceof RedirectView) { String location = ((RedirectView) view).getUrl(); if (location.startsWith(OOB_URI)) { UriComponents uriComponents = UriComponentsBuilder.newInstance().query(location.substring(OOB_URI.length() + 1)).build(); return new ModelAndView(new MappingJackson2JsonView(), uriComponents.getQueryParams().toSingleValueMap()); } } return mav; } }
chain = mapping2.getHandler(request); mv = adapter.handle(request, new MockHttpServletResponse(), chain.getHandler()); assertNotNull(mv.getView()); assertEquals(RedirectView.class, mv.getView().getClass()); RedirectView redirectView = (RedirectView) mv.getView(); MockHttpServletResponse response = new MockHttpServletResponse(); redirectView.render(Collections.emptyMap(), request, response);
@Override public void encodeAll(FacesContext context) throws IOException { SpringFacesContext.getCurrentInstance(true).render(this.modelAndView.getView(), this.modelAndView.getModel()); } }
public static boolean isRedirect(ModelAndView modelAndView) { return modelAndView != null && ((modelAndView.getView() != null && modelAndView.getView() instanceof RedirectView) || (modelAndView.getViewName() != null && modelAndView.getViewName().startsWith(UrlBasedViewResolver.REDIRECT_URL_PREFIX))); }
private ModelAndView getModelAndView(FacesContext context, String viewId, Map<String, List<String>> parameters) { DestinationAndModel destinationAndModel = getDestinationAndModelForViewId(context, viewId); if (destinationAndModel != null) { ModelAndView modelAndView = resolveDestination(context, destinationAndModel.getDestination()); Map<String, Object> resolvedViewModel = destinationAndModel.getModel(context, parameters, modelAndView.getModel()); return new ModelAndView(modelAndView.getView(), resolvedViewModel); } return null; }
@Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) { if (modelAndView != null) { if ((modelAndView.getView() != null && modelAndView.getView() instanceof RedirectView) || (modelAndView.getViewName() != null && modelAndView.getViewName().startsWith( UrlBasedViewResolver.REDIRECT_URL_PREFIX))) { return; } List<Notification> notifications = notificationService.retrieveNotifications(); modelAndView.addObject(notificationKey, notifications); logger.trace("View is " + modelAndView.getViewName()); } }
public View resolveView(HttpServletRequest request, ModelAndView mv) throws ViewResolutionException { if (mv.hasView() && !mv.isReference()) { return mv.getView(); } return resolveView(request, mv.getViewName()); }