提交 855cc5fe authored 作者: 马晨俊's avatar 马晨俊

mcj:删除登录拦截器

上级 515ecd47
......@@ -2,7 +2,9 @@ package com.zjty.inspect;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class InspectApplication {
......@@ -11,4 +13,8 @@ public class InspectApplication {
SpringApplication.run(InspectApplication.class, args);
}
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
package com.zjty.inspect.aop;
import com.zjty.inspect.entity.ServerResponse;
import com.zjty.inspect.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
......@@ -9,8 +10,11 @@ import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
......@@ -19,6 +23,7 @@ import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
/**
* @author Mcj
......@@ -30,11 +35,8 @@ import java.util.List;
@Component
public class AopIntercept {
private User user;
public void setUser(User user) {
this.user = user;
}
@Autowired
private RestTemplate restTemplate;
@Pointcut("@annotation(com.zjty.inspect.aop.AuthAnnotation)")
public void doPointCut() {
......@@ -42,6 +44,15 @@ public class AopIntercept {
@Around("doPointCut()")
public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
String sessionId = request.getHeader("session");
String url = "http://120.55.57.35:12345/user/getLogin/"+sessionId;
ServerResponse serverResponse = restTemplate.getForObject(url, ServerResponse.class);
if(serverResponse!=null && serverResponse.getCode()!=200){
ResponseEntity.status(403).build();
}
User user = serverResponse.getData();
AuthAnnotation authAnnotation = ((MethodSignature)joinPoint.getSignature()).getMethod().getAnnotation(AuthAnnotation.class);
String[] code = authAnnotation.code();
if(user!=null){
......@@ -64,4 +75,5 @@ public class AopIntercept {
}
return ResponseEntity.status(403).build();
}
}
......@@ -25,8 +25,7 @@ public class FpCorsFilter implements Filter {
HttpServletResponse response = (HttpServletResponse) res;
// 设置响应头的权限信息 request.getHeader("Origin")
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, PATCH, DELETE");
......
package com.zjty.inspect.config;
import com.zjty.inspect.aop.AopIntercept;
import com.zjty.inspect.entity.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Objects;
/**
* @author Mcj
* @date 2020-04-02 14:42
*/
@Configuration
public class LoginInterceptor implements HandlerInterceptor {
@Autowired
private RestTemplate restTemplate;
@Autowired
private AopIntercept aopIntercept;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) {
String sessionId = request.getHeader("session");
String url = "http://120.55.57.35:12345/user/getLogin/"+sessionId;
ServerResponse user = restTemplate.getForObject(url, ServerResponse.class);
if(Objects.requireNonNull(user).getData()==null){
//不符合条件的给出提示信息,并转发到登录页面
response.setStatus(403);
return false;
}
aopIntercept.setUser(user.getData());
return true;
}
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
......@@ -12,18 +12,16 @@ import java.util.List;
@Configuration
public class MvcConfig extends WebMvcConfigurationSupport {
@Autowired
private LoginInterceptor loginInterceptor;
@Override
protected void addInterceptors(InterceptorRegistry registry) {
// 多个拦截器组成一个拦截器链
// addPathPatterns 用于添加拦截规则,/**表示拦截所有请求
// excludePathPatterns 用户排除拦截
registry.addInterceptor(loginInterceptor)
.addPathPatterns("/**")
.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**","/doc.html");
;
// registry.addInterceptor(loginInterceptor)
// .addPathPatterns("/**")
// .excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**","/doc.html");
// ;
super.addInterceptors(registry);
}
......
......@@ -11,4 +11,5 @@ import java.io.Serializable;
@Data
public class ServerResponse implements Serializable {
private User data;
private Integer code;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论