Commit 9f548f13 by huyi

配置过滤器

parent c9455de3
No preview for this file type
package com.fhkj.oltinspection.config; 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.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.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
...@@ -14,5 +18,13 @@ public class WebMvcConfig implements WebMvcConfigurer { ...@@ -14,5 +18,13 @@ public class WebMvcConfig implements WebMvcConfigurer {
//super.addViewControllers(registry); //super.addViewControllers(registry);
registry.addViewController("/ws").setViewName("/ws"); registry.addViewController("/ws").setViewName("/ws");
registry.addViewController("/chat").setViewName("/chat"); registry.addViewController("/chat").setViewName("/chat");
} }
@Bean
AuthInterceptor authInterceptor() {
return new AuthInterceptor();
}
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authInterceptor());
}
} }
package com.fhkj.oltinspection.interceptor; 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.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** /**
* 身份颜色拦截器 * 身份颜色拦截器
*/ */
@Component
public class AuthInterceptor implements HandlerInterceptor { 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 @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object Hanlder) public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object Hanlder)
throws Exception { throws Exception {
try { try {
// 如果request请求头或是url中未包含token 验证失败 // 如果request请求头或是url中未包含token 验证失败
String token = request.getHeader("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; return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
response.sendError(HttpStatus.UNAUTHORIZED.value()); response.sendError(HttpStatus.UNAUTHORIZED.value());
return false; return false;
} }
} }
@Override @Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception { ModelAndView modelAndView) throws Exception {
} }
@Override @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception { throws Exception {
......
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