1、創建一個登陸攔截器SecurityInterceptor,它繼承HandlerInterceptorAdapter類
package com.cn.commodity.config; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; public class SecurityInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); if (session.getAttribute(WebSecurityConfig.SESSION_KEY) != null) { return true; } // 跳轉登錄-------controller類中的登陸方法 String url = "/login"; response.sendRedirect(url); return false; } }
2、創建一個URL攔截器WebSecurityConfig類,主要在這個類中實現URL攔截。注意:具體的攔截依據項目而定。
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; @Configuration public class WebSecurityConfig extends WebMvcConfigurerAdapter { public static final String SESSION_KEY = "user"; @Bean public SecurityInterceptor getSecurityInterceptor() { return new SecurityInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { InterceptorRegistration addInterceptor = registry.addInterceptor(getSecurityInterceptor()); // 排除配置--對下面的不進行攔截 addInterceptor.excludePathPatterns("/index"); addInterceptor.excludePathPatterns("/login"); // addInterceptor.excludePathPatterns("/user/**"); addInterceptor.excludePathPatterns("/start/**"); // 攔截配置 addInterceptor.addPathPatterns("/**"); } }
3、自己寫一個controller和一些jsp,就可以實現了。
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class JspController { @RequestMapping("/index") public String index(){ return "index"; } @RequestMapping("/login") public String login(){ return "login"; } }
4、jsp目錄和配置圖