package com.landtool.lanbase.config;
|
|
import javax.servlet.DispatcherType;
|
|
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.filter.DelegatingFilterProxy;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
|
|
import com.landtool.lanbase.common.xss.XssFilter;
|
import com.landtool.lanbase.modules.api.intercept.ApiInterceptor;
|
|
/**
|
* @author lanbase
|
* @Description: TODO(web配置)
|
* @date 2017-6-23 15:07
|
*/
|
@Configuration
|
public class WebConfig extends WebMvcConfigurerAdapter {
|
@Autowired
|
private ApiInterceptor apiInterceptor;
|
|
@Value("${sys.swagger.open:#{false}}")
|
private boolean swaggerOpen;
|
|
@Autowired
|
private SysTemPropertyConfig sysConfig;
|
|
@Override
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
//映射上传文件的地址
|
registry.addResourceHandler("/uploadPath/**").addResourceLocations("file:" + sysConfig.getUploadPath());
|
//registry.addResourceHandler("/wenjianjia/**").addResourceLocations("file:"+env.getProperty("wenjianjia"));
|
//registry.addResourceHandler("/wenjian/**").addResourceLocations("file:" + sysConfig.getUploadPath());
|
//映射swagger
|
if (swaggerOpen) {
|
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
|
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
}
|
super.addResourceHandlers(registry);
|
}
|
|
@Bean
|
public FilterRegistrationBean shiroFilterRegistration() {
|
FilterRegistrationBean registration = new FilterRegistrationBean();
|
registration.setFilter(new DelegatingFilterProxy("shiroFilter"));
|
//该值缺省为false,表示生命周期由SpringApplicationContext管理,设置为true则表示由ServletContainer管理
|
registration.addInitParameter("targetFilterLifecycle", "true");
|
registration.setEnabled(true);
|
registration.setOrder(Integer.MAX_VALUE - 1);
|
registration.addUrlPatterns("/*");
|
return registration;
|
}
|
|
//配置xssFilter
|
@Bean
|
public FilterRegistrationBean xssFilterRegistration() {
|
FilterRegistrationBean registration = new FilterRegistrationBean();
|
registration.setDispatcherTypes(DispatcherType.REQUEST);
|
registration.setFilter(new XssFilter("/sys/"));
|
registration.addUrlPatterns("/*");
|
registration.setName("xssFilter");
|
registration.setOrder(Integer.MAX_VALUE);
|
return registration;
|
}
|
|
//添加api interceptor
|
@Override
|
public void addInterceptors(InterceptorRegistry registry) {
|
registry.addInterceptor(apiInterceptor).addPathPatterns("/api/**");
|
}
|
|
}
|