JSON

handlerexceptionresolver 返回json

字号+ 作者:H5之家 来源:H5之家 2017-11-16 09:21 我要评论( )

handlerexceptionresolver 返回json

  package net.xqlee.security.interceptor; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView; @Component public class SecurityHandlerExceptionResolver implements HandlerExceptionResolver { private static Logger logger = LoggerFactory.getLogger(SecurityHandlerExceptionResolver.class); private static String data = "data"; private static String code = "code"; private static String msg = "msg"; private static String date = "date"; @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception) { // 未登陆异常捕获 // 返回错误信息 Map<String, Object> resultMap = new HashMap<>(); if (exception instanceof AuthenticationCredentialsNotFoundException) { logger.info("User Not Login:" + request.getRequestURL()); resultMap.put(code, "00001"); resultMap.put(msg, "用户未登录"); resultMap.put(data, ""); } else if (exception instanceof AccessDeniedException) { logger.info("Access Denied [ID:" + SecurityContextHolder.getContext().getAuthentication().getName() + "]:" + request.getRequestURL()); resultMap.put(code, "00001"); resultMap.put(msg, "用户权限不够"); resultMap.put(data, ""); } //这里是核心,用jsonview方式返回 MappingJackson2JsonView jackson2JsonView = new MappingJackson2JsonView(); //设置返回的json map jackson2JsonView.setAttributesMap(resultMap); ModelAndView view = new ModelAndView(); view.setView(jackson2JsonView); return view; } }  

返回信息: { "msg": "用户未登录", "data": "", "code": "00001" }  

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 利用 Java 6 javax.script 包直接处理 JSON

    利用 Java 6 javax.script 包直接处理 JSON

    2017-11-12 11:22

  • [JavaScript学习]通过Ajax获取对象信息(基于JSON方式)

    [JavaScript学习]通过Ajax获取对象信息(基于JSON方式)

    2017-11-10 09:01

  • IBM developerWorks 中国 : Java 开发概述

    IBM developerWorks 中国 : Java 开发概述

    2017-11-08 08:02

  • android开发实现天气情况的获取(Json来返回数据)

    android开发实现天气情况的获取(Json来返回数据)

    2017-11-07 12:00

网友点评
s