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;
|
}
|
}
|