package com.pro.huanbao.utils.configure.loginfilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
/**
* 登录配置 博客出处:http://www.cnblogs.com/GoodHelper/
*
*/
@Configuration
public class WebSecurityConfig extends WebMvcConfigurerAdapter {
/**
* 登录session key
*/
public final static String SESSION_KEY = "user_id";
@Bean
public SecurityInterceptor getSecurityInterceptor() {
return new SecurityInterceptor();
}
public void addInterceptors(InterceptorRegistry registry) {
InterceptorRegistration addInterceptor = registry.addInterceptor(getSecurityInterceptor());
// 排除配置
addInterceptor.excludePathPatterns("/");
addInterceptor.excludePathPatterns("/sadr/**");
addInterceptor.excludePathPatterns("/search/**");
addInterceptor.excludePathPatterns("/shop/**");
addInterceptor.excludePathPatterns("/product/**");
addInterceptor.excludePathPatterns("/information/**");
addInterceptor.excludePathPatterns("/login");
addInterceptor.excludePathPatterns("/company/loginByQQIndex");
addInterceptor.excludePathPatterns("/company/loginByQQ");
addInterceptor.excludePathPatterns("/company/loginByWeixin");
addInterceptor.excludePathPatterns("/company/thirdnone/*");
addInterceptor.excludePathPatterns("/company/thirdlogin/*");
addInterceptor.excludePathPatterns("/company/loginByPassword");
addInterceptor.excludePathPatterns("/company/loginBycode");
addInterceptor.excludePathPatterns("/company/confirmPasswordExistence");
addInterceptor.excludePathPatterns("/company/sendRegisterCode");
addInterceptor.excludePathPatterns("/company/sendLoginCode");
addInterceptor.excludePathPatterns("/company/selectByName");
addInterceptor.excludePathPatterns("/company/selectByPhone");
addInterceptor.excludePathPatterns("/register");
addInterceptor.excludePathPatterns("/register.html");
addInterceptor.excludePathPatterns("/company/saveReferUrl");
addInterceptor.excludePathPatterns("/company/selectByEmail");
addInterceptor.excludePathPatterns("/company/sendValidateMail");
addInterceptor.excludePathPatterns("/company/updatePasswordPage/*");
addInterceptor.excludePathPatterns("/company/updatePassword/*");
addInterceptor.excludePathPatterns("/getImageBase");
addInterceptor.excludePathPatterns("/updateProduceBrandAndAddress");
addInterceptor.excludePathPatterns("/index_img/transfer/*");
addInterceptor.excludePathPatterns("/deleteIndexCache");
addInterceptor.excludePathPatterns("/deleteCategoryCache");
addInterceptor.excludePathPatterns("/myhb/toCipherback");
// 拦截配置
addInterceptor.addPathPatterns("/**");
}
private class SecurityInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
String referer = request.getHeader("referer");
if (referer != null) {
HttpSession session = request.getSession();
if (session.getAttribute(SESSION_KEY) != null)
return true;
}
// 跳转登录
String url = "/login";
response.sendRedirect(url);
return false;
}
}
}