Commit 9f548f13 by huyi

配置过滤器

parent c9455de3
No preview for this file type
package com.fhkj.oltinspection.config;
import com.fhkj.oltinspection.interceptor.AuthInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
......@@ -15,4 +19,12 @@ public class WebMvcConfig implements WebMvcConfigurer {
registry.addViewController("/ws").setViewName("/ws");
registry.addViewController("/chat").setViewName("/chat");
}
@Bean
AuthInterceptor authInterceptor() {
return new AuthInterceptor();
}
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authInterceptor());
}
}
package com.fhkj.oltinspection.interceptor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fhkj.oltinspection.pojo.Result;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 身份颜色拦截器
*/
@Component
public class AuthInterceptor implements HandlerInterceptor {
private final static Log log = LogFactory.getLog(AuthInterceptor.class);
private final ObjectMapper objectMapper;
private final RestTemplateBuilder restTemplateBuilder;
@Autowired
public AuthInterceptor(ObjectMapper objectMapper, RestTemplateBuilder restTemplateBuilder) {
this.objectMapper = objectMapper;
this.restTemplateBuilder = restTemplateBuilder;
}
/**
* @return the log
*/
public static Log getLog() {
return log;
}
/**
* @return the restTemplateBuilder
*/
public RestTemplateBuilder getRestTemplateBuilder() {
return restTemplateBuilder;
}
private void returnResult(HttpServletResponse response, Result result) throws IOException {
response.setHeader("Content-Type", "application/json; charset=utf-8");
response.getWriter().print(objectMapper.writeValueAsString(result));
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object Hanlder)
throws Exception {
try {
// 如果request请求头或是url中未包含token 验证失败
String token = request.getHeader("token");
if (null == token) {
token = request.getParameter("token");
}
if (token == null || token.isEmpty()) {
returnResult(response, new Result("token为空"));
return false;
}
// 使用身份认证服务验证token
/*RestTemplate client = restTemplateBuilder.build();
Map<String, String> postParam = new HashMap<>();
postParam.put("Token", token);
TokenAuthResult tar = client.postForObject(tokenAuthURL, postParam, TokenAuthResult.class);
if (!tar.getFlag()) {
returnResult(response, new Result(ErrorCode.RET_NOT_LOGIN));
return false;
}*/
return true;
} catch (Exception e) {
e.printStackTrace();
response.sendError(HttpStatus.UNAUTHORIZED.value());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment