package com.itheima.interceptor;
import com.alibaba.fastjson.JSONObject;
import com.itheima.pojo.Result;
import com.itheima.utils.JwtUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Slf4j
@Component
public class LoginCheckInterceptor implements HandlerInterceptor {
@Override //目标资源方法执行前执行,返回true:放行,返回false:不放行
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {
//1.获取请求url
String url = req.getRequestURL().toString();
log.info("请求的url:{}",url);
//2.判断请求url中是否包含login,如果包含,说明是登录操作,放行。
if (url.contains("login")){
log.info("登陆操作,放行~~");
return true;
}
//3.获取请求头中的令牌(token)
String jwt = req.getHeader("token");
//4.判断令牌是否存在,如果不存在,返回错误结果(未登录)
if(!StringUtils.hasLength(jwt)){
log.info("请求头为token空,返回未登录的信息");
Result error = Result.error("NOT_LOGIN");
//手动转换 对象--json ------> 阿里巴巴fastJson
String notLogin = JSONObject.toJSONString(error);
resp.getWriter().write(notLogin);
return false;
}
//5.解析token,如果解析失败,返回错误结果(未登录)
try {
JwtUtils.parseJWT(jwt);
} catch (Exception e) { //jwt解析失败
e.printStackTrace();
log.info("请求令牌失败,返回未登录错误信息");
Result error = Result.error("NOT_LOGIN");
//手动转换 对象--json ------> 阿里巴巴fastJson
String notLogin = JSONObject.toJSONString(error);
resp.getWriter().write(notLogin);
return false;
}
//6.放行
log.info("合法令牌,放行");
System.out.println("preHandle ...");
return true;
}
@Override //目标资源方法执行后执行
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle ...");
}
@Override //视图渲染完毕后执行,最后执行
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion ...");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
maven高级(分模块设计、继承、聚合、私服)
共206个文件
xml:109个
java:35个
class:35个
需积分: 0 0 下载量 97 浏览量
2023-07-07
21:48:05
上传
评论
收藏 26.55MB RAR 举报
温馨提示
maven高级(分模块设计、继承、聚合、私服)
资源推荐
资源详情
资源评论
收起资源包目录
maven高级(分模块设计、继承、聚合、私服) (206个子文件)
Emp.class 7KB
OperateLog.class 5KB
EmpController.class 4KB
LoginCheckInterceptor.class 4KB
LogAspect.class 3KB
SessionController.class 3KB
Dept.class 3KB
AliOSSProperties.class 3KB
Result.class 3KB
EmpServiceImpl.class 3KB
LoginCheckFilter.class 3KB
DeptController.class 3KB
Demo.class 3KB
DeptServiceImpl.class 3KB
DeptLog.class 3KB
TliasWebManagementApplicationTests.class 3KB
AliOSSUtils.class 2KB
LoginController.class 2KB
PageBean.class 2KB
JwtUtils.class 2KB
UploadController.class 2KB
EmpMapper.class 1KB
DemoFilter.class 1KB
WebConfig.class 1KB
AbcFilter.class 1KB
DeptMapper.class 1KB
DeptLogServiceImpl.class 1003B
GlobalExceptionHandler.class 918B
TliasWebManagementApplication.class 831B
EmpService.class 737B
OperateLogMapper.class 592B
DeptService.class 515B
DeptLogMapper.class 450B
Log.class 376B
DeptLogService.class 218B
upload.html 438B
upload.html 438B
tlias-web-management.iml 12KB
tlias-utils.iml 7KB
tlias-pojo.iml 942B
tlias-parent.iml 942B
tlias-web-management-0.0.1-SNAPSHOT.jar 29.63MB
tlias-pojo-1.0-SNAPSHOT.jar 12KB
tlias-utils-1.0-SNAPSHOT.jar 6KB
LoginCheckInterceptor.java 3KB
Demo.java 3KB
LoginCheckFilter.java 2KB
LogAspect.java 2KB
EmpServiceImpl.java 2KB
EmpController.java 2KB
DeptController.java 2KB
AliOSSUtils.java 2KB
DeptServiceImpl.java 2KB
EmpMapper.java 2KB
UploadController.java 2KB
SessionController.java 2KB
TliasWebManagementApplicationTests.java 1KB
LoginController.java 1KB
JwtUtils.java 1KB
DemoFilter.java 1KB
DeptMapper.java 919B
EmpService.java 888B
Emp.java 825B
Result.java 729B
WebConfig.java 725B
DeptLogServiceImpl.java 702B
OperateLog.java 618B
AbcFilter.java 590B
DeptService.java 549B
OperateLogMapper.java 534B
GlobalExceptionHandler.java 522B
TliasWebManagementApplication.java 466B
Dept.java 437B
AliOSSProperties.java 416B
PageBean.java 344B
DeptLogMapper.java 343B
DeptLog.java 328B
Log.java 290B
DeptLogService.java 143B
inputFiles.lst 2KB
inputFiles.lst 512B
inputFiles.lst 278B
inputFiles.lst 206B
createdFiles.lst 182B
createdFiles.lst 0B
inputFiles.lst 0B
createdFiles.lst 0B
createdFiles.lst 0B
inputFiles.lst 0B
createdFiles.lst 0B
createdFiles.lst 0B
tlias-web-management-0.0.1-SNAPSHOT.jar.original 29KB
pom.properties 78B
pom.properties 67B
pom.properties 66B
workspace.xml 21KB
pom.xml 4KB
EmpMapper.xml 2KB
EmpMapper.xml 2KB
pom.xml 2KB
共 206 条
- 1
- 2
- 3
资源评论
梦~001
- 粉丝: 7
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功