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 ...");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
tlias-web-management.rar (71个子文件)
tlias-web-management
pom.xml 3KB
src
test
java
com
itheima
TliasWebManagementApplicationTests.java 1KB
Demo.java 3KB
main
resources
templates
static
upload.html 438B
application.yml 762B
com
itheima
mapper
EmpMapper.xml 2KB
java
com
itheima
TliasWebManagementApplication.java 466B
mapper
EmpMapper.java 2KB
DeptLogMapper.java 343B
DeptMapper.java 919B
controller
UploadController.java 2KB
SessionController.java 2KB
EmpController.java 2KB
LoginController.java 1KB
DeptController.java 2KB
utils
JwtUtils.java 1KB
AliOSSUtils.java 2KB
AliOSSProperties.java 416B
pojo
PageBean.java 342B
DeptLog.java 328B
Dept.java 435B
Result.java 729B
Emp.java 823B
service
DeptLogService.java 143B
impl
EmpServiceImpl.java 2KB
DeptLogServiceImpl.java 702B
DeptServiceImpl.java 2KB
DeptService.java 549B
EmpService.java 888B
filter
LoginCheckFilter.java 2KB
AbcFilter.java 590B
DemoFilter.java 1KB
exception
GlobalExceptionHandler.java 522B
config
WebConfig.java 725B
interceptor
LoginCheckInterceptor.java 3KB
target
classes
static
upload.html 438B
application.yml 762B
META-INF
spring-configuration-metadata.json 788B
com
itheima
TliasWebManagementApplication.class 831B
mapper
DeptLogMapper.class 450B
EmpMapper.xml 2KB
DeptMapper.class 1KB
EmpMapper.class 1KB
controller
DeptController.class 3KB
LoginController.class 2KB
UploadController.class 2KB
SessionController.class 3KB
EmpController.class 4KB
utils
JwtUtils.class 2KB
AliOSSUtils.class 2KB
AliOSSProperties.class 3KB
pojo
Result.class 3KB
Dept.class 3KB
PageBean.class 2KB
DeptLog.class 3KB
Emp.class 7KB
service
DeptService.class 515B
DeptLogService.class 218B
impl
EmpServiceImpl.class 3KB
DeptLogServiceImpl.class 1003B
DeptServiceImpl.class 3KB
EmpService.class 737B
filter
LoginCheckFilter.class 3KB
DemoFilter.class 1KB
AbcFilter.class 1KB
exception
GlobalExceptionHandler.class 918B
config
WebConfig.class 1KB
interceptor
LoginCheckInterceptor.class 4KB
test-classes
com
itheima
Demo.class 3KB
TliasWebManagementApplicationTests.class 3KB
generated-test-sources
test-annotations
generated-sources
annotations
tlias-web-management.iml 12KB
共 71 条
- 1
资源评论
梦~001
- 粉丝: 7
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功