Search in sources :

Example 11 with MappingJackson2JsonView

use of org.springframework.web.servlet.view.json.MappingJackson2JsonView in project cas by apereo.

the class OAuth20Utils method writeError.

/**
 * Write to the output this error.
 *
 * @param response the response
 * @param error    error message
 * @return json -backed view.
 */
public static ModelAndView writeError(final HttpServletResponse response, final String error) {
    val model = CollectionUtils.wrap(OAuth20Constants.ERROR, error);
    val mv = new ModelAndView(new MappingJackson2JsonView(MAPPER), (Map) model);
    mv.setStatus(HttpStatus.BAD_REQUEST);
    response.setStatus(HttpStatus.BAD_REQUEST.value());
    return mv;
}
Also used : lombok.val(lombok.val) ModelAndView(org.springframework.web.servlet.ModelAndView) MappingJackson2JsonView(org.springframework.web.servlet.view.json.MappingJackson2JsonView)

Example 12 with MappingJackson2JsonView

use of org.springframework.web.servlet.view.json.MappingJackson2JsonView in project cas by apereo.

the class Cas30JsonResponseView method createDelegatedView.

private static MappingJackson2JsonView createDelegatedView() {
    val view = new MappingJackson2JsonView();
    view.setPrettyPrint(true);
    view.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL).findAndRegisterModules();
    return view;
}
Also used : lombok.val(lombok.val) MappingJackson2JsonView(org.springframework.web.servlet.view.json.MappingJackson2JsonView)

Example 13 with MappingJackson2JsonView

use of org.springframework.web.servlet.view.json.MappingJackson2JsonView in project cas by apereo.

the class OidcCallbackAuthorizeViewResolver method resolve.

@Override
@SneakyThrows
public ModelAndView resolve(final WebContext context, final ProfileManager manager, final String url) {
    val prompt = OidcRequestSupport.getOidcPromptFromAuthorizationRequest(url);
    if (prompt.contains(OidcConstants.PROMPT_NONE)) {
        val result = manager.getProfile();
        if (result.isPresent()) {
            LOGGER.trace("Redirecting to URL [{}] without prompting for login", url);
            return new ModelAndView(new RedirectView(url));
        }
        val originalRedirectUrl = OAuth20Utils.getRequestParameter(context, OAuth20Constants.REDIRECT_URI);
        if (originalRedirectUrl.isEmpty()) {
            val model = new HashMap<String, String>();
            model.put(OAuth20Constants.ERROR, OidcConstants.LOGIN_REQUIRED);
            return new ModelAndView(new MappingJackson2JsonView(), model);
        }
        val parameters = new LinkedHashMap<String, String>();
        parameters.put(OAuth20Constants.ERROR, OidcConstants.LOGIN_REQUIRED);
        OAuth20Utils.getRequestParameter(context, OAuth20Constants.STATE).ifPresent(state -> parameters.put(OAuth20Constants.STATE, state));
        val clientId = OAuth20Utils.getRequestParameter(context, OAuth20Constants.CLIENT_ID).orElse(StringUtils.EMPTY);
        val registeredService = OAuth20Utils.getRegisteredOAuthServiceByClientId(servicesManager, clientId);
        val responseType = OAuth20Utils.getResponseModeType(context);
        val redirect = FunctionUtils.doIf(OAuth20Utils.isResponseModeTypeFormPost(registeredService, responseType), originalRedirectUrl::get, () -> OidcRequestSupport.getRedirectUrlWithError(originalRedirectUrl.get(), OidcConstants.LOGIN_REQUIRED, context)).get();
        LOGGER.warn("Unable to detect authenticated user profile for prompt-less login attempts. Redirecting to URL [{}]", redirect);
        return authorizationModelAndViewBuilder.build(registeredService, responseType, redirect, parameters);
    }
    if (prompt.contains(OidcConstants.PROMPT_LOGIN)) {
        LOGGER.trace("Removing login prompt from URL [{}]", url);
        val newUrl = OidcRequestSupport.removeOidcPromptFromAuthorizationRequest(url, OidcConstants.PROMPT_LOGIN);
        LOGGER.trace("Redirecting to URL [{}]", newUrl);
        return new ModelAndView(new RedirectView(newUrl));
    }
    LOGGER.trace("Redirecting to URL [{}]", url);
    return new ModelAndView(new RedirectView(url));
}
Also used : lombok.val(lombok.val) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) ModelAndView(org.springframework.web.servlet.ModelAndView) RedirectView(org.springframework.web.servlet.view.RedirectView) MappingJackson2JsonView(org.springframework.web.servlet.view.json.MappingJackson2JsonView) LinkedHashMap(java.util.LinkedHashMap) SneakyThrows(lombok.SneakyThrows)

Example 14 with MappingJackson2JsonView

use of org.springframework.web.servlet.view.json.MappingJackson2JsonView in project cas by apereo.

the class OidcPushedAuthorizationModelAndViewBuilder method build.

@Override
public ModelAndView build(final OAuthRegisteredService registeredService, final OAuth20ResponseModeTypes responseMode, final String redirectUrl, final Map<String, String> parameters) {
    val model = new LinkedHashMap<String, Object>();
    model.put(OidcConstants.EXPIRES_IN, Long.valueOf(parameters.get(OidcConstants.EXPIRES_IN)));
    model.put(OidcConstants.REQUEST_URI, parameters.get(OidcConstants.REQUEST_URI));
    val mv = new ModelAndView(new MappingJackson2JsonView(), model);
    mv.setStatus(HttpStatus.CREATED);
    return mv;
}
Also used : lombok.val(lombok.val) ModelAndView(org.springframework.web.servlet.ModelAndView) MappingJackson2JsonView(org.springframework.web.servlet.view.json.MappingJackson2JsonView) LinkedHashMap(java.util.LinkedHashMap)

Example 15 with MappingJackson2JsonView

use of org.springframework.web.servlet.view.json.MappingJackson2JsonView in project proxyee-down by monkeyWie.

the class RestExceptionHandler method resolveException.

@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
    LOGGER.error("rest error:", e);
    ModelAndView modelAndView = new ModelAndView();
    try {
        ResultInfo resultInfo = new ResultInfo().setStatus(ResultStatus.ERROR.getCode()).setMsg(ResultInfo.MSG_ERROR);
        Map<String, Object> attr = JSON.parseObject(JSON.toJSONString(resultInfo), Map.class);
        MappingJackson2JsonView view = new MappingJackson2JsonView();
        view.setAttributesMap(attr);
        modelAndView.setView(view);
    } catch (Exception e1) {
        e1.printStackTrace();
    }
    return modelAndView;
}
Also used : ModelAndView(org.springframework.web.servlet.ModelAndView) ResultInfo(lee.study.down.model.ResultInfo) MappingJackson2JsonView(org.springframework.web.servlet.view.json.MappingJackson2JsonView)

Aggregations

MappingJackson2JsonView (org.springframework.web.servlet.view.json.MappingJackson2JsonView)22 ModelAndView (org.springframework.web.servlet.ModelAndView)11 ContentNegotiatingViewResolver (org.springframework.web.servlet.view.ContentNegotiatingViewResolver)7 lombok.val (lombok.val)5 Test (org.junit.jupiter.api.Test)5 MarshallingView (org.springframework.web.servlet.view.xml.MarshallingView)5 ArrayList (java.util.ArrayList)4 Jaxb2Marshaller (org.springframework.oxm.jaxb.Jaxb2Marshaller)4 View (org.springframework.web.servlet.View)4 InternalResourceViewResolver (org.springframework.web.servlet.view.InternalResourceViewResolver)4 ValidationError (com.breuninger.arch.playground.common.domain.ValidationError)3 HashMap (java.util.HashMap)3 ContentNegotiationManager (org.springframework.web.accept.ContentNegotiationManager)3 FixedContentNegotiationStrategy (org.springframework.web.accept.FixedContentNegotiationStrategy)3 HeaderContentNegotiationStrategy (org.springframework.web.accept.HeaderContentNegotiationStrategy)3 ExceptionHandler (org.springframework.web.bind.annotation.ExceptionHandler)3 ResponseStatus (org.springframework.web.bind.annotation.ResponseStatus)3 LinkedHashMap (java.util.LinkedHashMap)2 Bean (org.springframework.context.annotation.Bean)2 WebTestClient (org.springframework.test.web.reactive.server.WebTestClient)2