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