package cn.mb.cloud.auth.config; import cn.mb.cloud.common.core.constant.enums.ErrorCodeConstants; import cn.mb.cloud.common.core.util.ResponseData; import lombok.extern.slf4j.Slf4j; import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; import org.springframework.security.oauth2.common.OAuth2AccessToken; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; /** * 全局响应处理 * * @author dengyao * @version 1.0.0 * @date 2019/05/23 16:30 */ @Slf4j @RestControllerAdvice public class GlobalResponseBodyAdvice implements ResponseBodyAdvice { @Override public boolean supports(MethodParameter methodParameter, Class aClass) { return true; } @Override public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { if (body instanceof OAuth2AccessToken) { try { OAuth2AccessToken token = (OAuth2AccessToken) body; return ResponseData.builder().code(ErrorCodeConstants.SUCCESS.getValue()) .msg("操作成功").data(token).build(); } catch (Exception e) { log.error("数据类型统一包装错误", e); } } return body; } }