parent
c3f5041264
commit
41852cade2
5 changed files with 140 additions and 7 deletions
@ -0,0 +1,18 @@ |
|||||||
|
package com.hmdp.config; |
||||||
|
|
||||||
|
import com.hmdp.utils.LoginInterceptor; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry; |
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; |
||||||
|
|
||||||
|
@Configuration |
||||||
|
public class MvcConfig implements WebMvcConfigurer { |
||||||
|
@Override |
||||||
|
public void addInterceptors(InterceptorRegistry registry) { |
||||||
|
// 添加登录拦截器
|
||||||
|
registry.addInterceptor(new LoginInterceptor()).excludePathPatterns( |
||||||
|
"/user/login", |
||||||
|
"/user/code" |
||||||
|
); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
package com.hmdp.utils; |
||||||
|
|
||||||
|
import com.hmdp.dto.UserDTO; |
||||||
|
import com.hmdp.entity.User; |
||||||
|
import org.springframework.web.servlet.HandlerInterceptor; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import javax.servlet.http.HttpSession; |
||||||
|
|
||||||
|
public class LoginInterceptor implements HandlerInterceptor { |
||||||
|
@Override |
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { |
||||||
|
// 1.获取session
|
||||||
|
HttpSession session = request.getSession(); |
||||||
|
// 2.获取session中的用户
|
||||||
|
Object user = session.getAttribute("user"); |
||||||
|
// 3.判断用户是否存在
|
||||||
|
if (user == null) { |
||||||
|
// 4.不存在,将请求拦截
|
||||||
|
response.setStatus(401); |
||||||
|
return false; |
||||||
|
} |
||||||
|
// 5.存在则保存用户信息到ThreadLocal
|
||||||
|
UserHolder.saveUser((UserDTO) user); |
||||||
|
// 6.放行
|
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { |
||||||
|
UserHolder.removeUser(); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue