57 lines
2.2 KiB
Java
57 lines
2.2 KiB
Java
package com.kama.notes.config;
|
||
|
||
import com.kama.notes.filter.TraceIdFilter;
|
||
import com.kama.notes.interceptor.TokenInterceptor;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.beans.factory.annotation.Value;
|
||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||
import org.springframework.context.annotation.Bean;
|
||
import org.springframework.context.annotation.Configuration;
|
||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||
|
||
@Configuration
|
||
public class WebConfig implements WebMvcConfigurer {
|
||
|
||
@Value("${upload.path:D:/kamaNotes/upload}")
|
||
private String uploadPath;
|
||
|
||
@Autowired
|
||
private TokenInterceptor tokenInterceptor;
|
||
|
||
@Override
|
||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||
registry.addResourceHandler("/images/**")
|
||
.addResourceLocations("file:" + uploadPath + "/");
|
||
}
|
||
|
||
/**
|
||
* 添加拦截器,用于验证 token,初始化请求周期中的用户相关信息
|
||
*/
|
||
@Override
|
||
public void addInterceptors(InterceptorRegistry registry) {
|
||
registry.addInterceptor(tokenInterceptor)
|
||
.addPathPatterns("/**")
|
||
.excludePathPatterns("/login", "/error");
|
||
}
|
||
|
||
@Override
|
||
public void addCorsMappings(CorsRegistry registry) {
|
||
registry.addMapping("/**")
|
||
.allowedOrigins("http://localhost:5173", "http://127.0.0.1:5173") // 允许的域名
|
||
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")// 允许的 HTTP 方法
|
||
.allowedHeaders("*")
|
||
.allowCredentials(true)
|
||
.maxAge(3600);
|
||
}
|
||
|
||
@Bean
|
||
public FilterRegistrationBean<TraceIdFilter> traceIdFilter() {
|
||
FilterRegistrationBean<TraceIdFilter> registrationBean = new FilterRegistrationBean<>();
|
||
registrationBean.setFilter(new TraceIdFilter());
|
||
registrationBean.addUrlPatterns("/*");
|
||
return registrationBean;
|
||
}
|
||
} |