1. 会话技术有哪些方式可以实现?
Session 和 Cookie
JWT令牌
2. JWT令牌组成部分有哪些,各自作用是什么?
第一部分:Header(头),作用:记录令牌类型、签名算法等。
第二部分:Payload(有效载荷),作用:携带一些用户信息及过期时间等。
第三部分:Signature(签名),作用:防止Token被篡改、确保安全性。
3. 怎么使用JWT令牌?(依赖,创建,校验)
1). pom.xml 引入jwt的依赖:jjwt(jsonwebtoken)
2). 生成JWT代码实现 在test下测试,校验
4. 项目中在什么时候去生成令牌?
用户登录时生成
5. 当前端携带令牌访问资源时怎么去拦截校验令牌的合法性?
使用拦截器、过滤器
6. 过滤器具体使用的步骤是怎样的?
1). 定义类,实现 Filter 接口,并重写 doFilter 方法
2). 配置Filter拦截资源的路径:在类上定义 @WebFilter 注解
3). 在doFilter方法中输出一句话,并放行
4). 在引导类上使用 @ServletComponentScan 开启 Servlet 组件扫描
7. 拦截器具体使用的步骤是怎样的?(在SpringMVC中动态拦截控制器方法的执行)
1). 定义拦截器,实现 HandlerInterceptor 接口,并重写其所有方法(重写preHandle方法即可)。(类上定义 @Component注解)
2). 注册拦截器 实现 WebMvcConfigurer 接口,重写addInterceptors方法(类上定义 @Configuration注解)
8. Filter 与 Interceptor 区别
1). 接口规范不同:过滤器需要实现Filter接口,而拦截器需要实现HandlerInterceptor接口。
2). 拦截范围不同:过滤器Filter会拦截所有的资源,而Interceptor只会拦截Spring环境中的资源。
9. 项目中异常是怎么处理的?具体怎么实现?
处理:
全局异常处理器处理
实现:
1). 一般会先定义exception包,
2). 写一个 GlobalExceptionHandler 类(全局异常处理器)
3). 类上加上@RestControllerAdvice
4). 写一个返回异常的方法(方法上加 @ExceptionHandler(Exception.class) 注解 )