当前位置: 首页 > news >正文

单页网站在线制作吉林省 网站建设

单页网站在线制作,吉林省 网站建设,阿里云网站建设 部署与发布,12580黄页推广关键字#xff1a;AOP、JWT、自定义注解、责任链模式 一、Spring Security Spring Security 想必大家并不陌生#xff0c;是 Spring 家族里的一个安全框架#xff0c;特别完善#xff0c;但学习成本比较大#xff0c;不少开发者都觉得#xff0c;这个框架“很重” 他的…关键字AOP、JWT、自定义注解、责任链模式 一、Spring Security Spring Security 想必大家并不陌生是 Spring 家族里的一个安全框架特别完善但学习成本比较大不少开发者都觉得这个框架“很重” 他的认证授权的过程时使用的 api 和组件比较复杂但这不是主要的顾虑 并且他是基于过滤器实现的其过程抛出的异常并不会被全局异常处理器拦截通过 SpringSecurity 认证授权的请求才算进入我们的 Spring 环境下 但不得不说他确实有优点 对请求的一个 AOP 的统一处理但是好像没有专门的后置处理器可以通过添加过滤器的方式增加认证过程也对某些路由可添加授权过程框架的一些注解例如 PreAuthorize可以很方便的进行接口权限的设置 虽然它封装了很多现成的东西但其实一些自己去写也没什么大不了的还可以按照自己的想法去定制 我们可以学习它的优点去优化一下我们原本的认证授权架构 二、AOP JWT 通过全局拦截器拦截所有的请求请求携带访问令牌 JWT这里就不必多说了 三、自定义注解 自定义一个可以 Retention 为 RuntimeTarget 为 TYPE 或 METHOD 的注解 允许访问的角色是否需要认证是否需要授权 标注在 Controller 类才有用若加在类上则作用于所有方法若标注在方法上则以方法上的为准 意为此接口的拦截参数 /*** Created With Intellij IDEA* User: 马拉圈* Date: 2024-08-08* Time: 12:50* br /* permit: 用户必须是列表中的角色才能访问 br /* authenticate: 用户需不需要通过认证 br /* authorize: 用户需不需要通过授权 br /* 注意 br /* permit 若为 {}则代表谁都不能访问除非 authorize 为 false br /* 1. 不需要认证、不需要授权 ✅ br /* 2. 需要认证、需要授权 ✅ br /* 3. 需要认证、不需要授权 ✅ br /* 4. 不需要认证、需要授权 ❌必然失败 br /*/ Documented Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) public interface Intercept {UserType[] permit() default {UserType.NORMAL_USER, UserType.MANAGER};boolean authenticate() default true; // 默认需要认证boolean authorize() default true; // 默认需要授权} Slf4j public class InterceptHelper {public static Intercept getIntercept(Class? clazz) {// 类上的 Intercept 为初步结果return clazz.isAnnotationPresent(Intercept.class) ? clazz.getAnnotation(Intercept.class) : null;}public static Intercept getIntercept(Method targetMethod) {// 获取目标方法所在的类Class? declaringClass targetMethod.getDeclaringClass();// 类上的 Intercept 为初步结果Intercept intercept getIntercept(declaringClass);// 方法上的 Intercept 为最终结果return targetMethod.isAnnotationPresent(Intercept.class) ? targetMethod.getAnnotation(Intercept.class) : intercept;}}四、责任链模式 责任链 抽象处理者具体处理者客户端我习惯是责任链的链头 设计出以下架构 前置初始化链 初始化日志变量、设置请求 id、请求 uri、请求方法便于全链路追踪根据配置文件对特定接口设置的拦截参数判断当前请求的接口是否被设置了特殊的拦截参数请求的接口如果存在目标方法则判断其方法上或者类上是否存在 Intercept 注解若存在则初始化拦截参数 若不存在拦截参数则代表该资源没有被开发者专门进行拦截的管理直接返回错误api 访问失败 前置认证链 是否忽略若 authenticate 参数为 false则直接忽略若认证未成功且未获取 jwt则尝试从 header 里获取 jwt若认证未成功且未获取 jwt则此时从 queryString 里获取 jwt若认证未成功则解析 jwt若成功解析出用户信息则存储到本地线程变量里若令牌即将过期则返回一个新的 jwt 若未认证成功则返回错误认证失败 前置授权链 是否武略是否强制拦截若未授权成功则获取当前用户的角色判断是否存在于拦截参数的允许访问的角色列表若存在则授权成功 若未授权成功则返回错误授权失败 后置链 清除日志变量、本地线程变量 在我们的架构中而一个责任链节点应该包含 拦截的路由执行的前置条件执行的代码 具体代码参考OKR-System4.0/src/main/java/cn/bitterfree/api/interceptor at main · CarefreeState/OKR-System4.0
http://www.tj-hxxt.cn/news/137536.html

相关文章:

  • 广州网站建设快速排名公司网站无法收录
  • 网站前端工程师手机端网站seo
  • 数码网站建设论文福州网站建设 找燕狂徒 05
  • 关于公司网站的建设的问卷德宏企业网站建设
  • 公司网站兰州建设需要多少钱东莞网站网络公司
  • 有特点的个人网站网页布局设计说明
  • 西安有哪些大公司华企网站建设推广优化
  • wordpress陌陌主题搜索引擎优化seo论文
  • 定制化网站建设公司长沙企业网站建设
  • 网站设计作用品牌网是什么网站
  • 网站建设电话销售不被挂断为什么网站的备案号在备案网站查询不到
  • 免费建站网站网页长沙债务优化公司
  • 网站建设中 动态图片长春公司网站模板建站
  • 保健品网站建设案例佛山市seo推广哪家好
  • 免费企业官网模板天蝎网站推广优化
  • 电商商城网站开发深圳网站建设工作
  • 江西省城住房和城乡建设厅网站学做网站视频论坛
  • 网站cms系统哪个好用吗做网站在图片里加文字
  • 曲阜网站建设百度开户wordpress购物车保存
  • 海伦网站建设济南网站建设开发
  • 做团购网站怎样赚钱网站建设对企业很重要
  • 网站系统建设系广告经营者网站建设的简介
  • 网站建设网站制作公司哪家好做电商网站的步骤
  • 怎么让网站文章被收录番禺论坛网站建设
  • 做网站和APP需要注册公司吗学网页制作需要学什么
  • 建设银行网站解除绑定wordpress 标签云插件下载
  • 北京做网站公司有哪些da面板安装wordpress
  • 金湖网站建设如何进行推广
  • vue做网站前端我想接app注册推广单
  • 如何申请免费网站泗县住房和城乡建设局网站