拦截器
拦截器
package com.td.fof.web.config;
import com.td.fof.rpc.trans.dto.UserDTO;
import com.td.fof.web.client.RpcClientService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @Author dengYinYue
* @Date 2022/7/12 15:30
*/
@Slf4j
public class LoginHandlerInterceptor implements HandlerInterceptor {
@Autowired
private RpcClientService rpcClientService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
/* //OPTIONS请求直接放行
if (HttpMethod.OPTIONS.toString().equals(request.getMethod())) {
return true;
}
String sessionId = request.getParameter("sessionId");
if (null != sessionId) {
String redisSessionId = rpcClientService.userApiService.getUser(sessionId);
if (null != redisSessionId) {
return true;
}
log.info("未登录请求被拒绝");
}*/
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
拦截器配置类
package com.td.fof.web.config;
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.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Bean
LoginHandlerInterceptor getinInterceptor() {
return new LoginHandlerInterceptor();
}
//校验拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getinInterceptor())
.addPathPatterns("/**")// 添加所有路径需要校验
.excludePathPatterns("/api/v1/user/save", "/api/v1/user/resetPwd",//不需要拦截的接口
"/api/v1/user/logout", "/api/v1/user/sendSms",
"/api/v1/user/getToken",
"/api/v1/user/login");
}
}