spring cron表达式解析 作者: juoliii 时间: 2023-04-28 分类: 开发,spring 评论 # 解析 ![](http://www.netman.vip/blog/usr/uploads/2023/04/1385843577.png) 特殊字符: * 对应字段上的所有值,例如在分钟字段,表示每一分钟。相应的有每一秒,每个月,每一年等。 ? 表示该字段不设置。在两个字段只能选其一的情况下使用,例如日期和星期只能出现一个,那个不使用的那个字段就设置为? - 用于设置范围,上下界都包含,例如月份字段8-10,表示8,9,10三个月份。 , 表示列表值(多值),如MON,WED,FRI 表示周一周三周五,当取值不连续无法使用范围时,使用该字段。 / 配置步长/增量. 格式为 开始/步长. 在秒位置上配置为0/15,表示从0来时,15为单位增加,在取值范围内的所有值,即0,15,30,45. 如果开始设置为5,即5/15,则取值为5,20,35,50 如果开始未知为*,等效于0或者其他起始值 L 表示最后一个可选值。例如在日期中表示月份的最后一天,30号或31号或28号,根据月份年份不同。星期中表示星期中的最后一天,即7或者SAT。 在星期中设置为6L,表示月份的最后一个星期五(6表示) L-3表示倒数第三天(third-to-last) W 只用于日期字段。weekday,周一到周五,表示离当前最近的工作日。例如在日期字段配置为15W,表示离15号最近的工作日。所以如果15号是星期六,则将在14号星期五触发。如果15号是星期二,那会在15号星期二触发。 注意在计算最近工作日的时候,不会跨越日期。例如1W,并且1号为星期六,则将在该月的3号触发,而不会跳到上一个月的最后一天星期五。 W用于配置月份中的特定一天,不能出现在多天的情况下。 如果W和L一起使用在日期字段,即LW,则表示月份的最后一个工作日。 # 只用于星期字段,例如6#3表示第三个周五(6为周五,#3表示第三个星期)。 2#1表示第一个周一。 如果你设置#5但是没有第五周,则不会触发。 # 例子 ![](http://www.netman.vip/blog/usr/uploads/2023/04/2655007660.png)
springcloud 技术架构 作者: juoliii 时间: 2023-04-28 分类: 开发,spring 评论 ![](http://www.netman.vip/blog/usr/uploads/2023/04/146712306.png)
单点登陆sso 随笔 作者: juoliii 时间: 2023-04-28 分类: 开发 评论 ###前后端分离模式的单点登陆 ![](http://www.netman.vip/blog/usr/uploads/2023/04/689769195.png) # 单点登陆原理 ![](http://www.netman.vip/blog/usr/uploads/2023/04/211301345.png) ------------ ## 用户登录 1. 用户通过浏览器发送请求访问 CAS Client 资源 2. CAS Client 发现用户请求中未包含 ST 票据,将浏览器重定向到 CAS Server,此时 URL 中会携带名为 service 的参数,参数值是用户要访问的客户端资源地址 3. CAS Server 对访问的用户是否携带 TGC 进行验证,若未携带则跳转到 CAS 统一的登录页面 4. 用户登录后,CAS Server 将浏览器重定向到之前 service 参数值指向的客户端地址(URL 的最后会增加 st 参数,CAS Client 可将 ST 保存起来),同时生成 TGC 写入浏览器中 5. 由于此次重定向携带了 ST,CAS Client 会向 CAS Server 发送验证请求 6. CAS Server 验证通过,用户可以正常访问资源 7. 此时浏览器已与 CAS Client 建立会话,若 CAS Client 保存了 ST,后续请求通过会话即可调取 ST 并与 CAS Server 进行验证 ------------ ## 已登录用户访问其他资源 1. 用户访问未建立会话的 CAS Client 资源 2. CAS Client 需要 ST 进行验证,将浏览器重定向到 CAS Server 3. 用户访问 CAS Server,CAS Server 发现用户有 TGT,签发一个 ST,返回给用户浏览器并重定向到 CAS Client 4. CAS Client 发现有 ST 去 CAS Server(CAS Client 可将 ST 保存起来) 验证,验证通过后,允许用户访问资源 5. 此时浏览器已与 CAS Client 建立会话,若 CAS Client 保存了 ST,后续请求通过会话即可调取 ST 并与 CAS Server 进行验证 ------------ ##CAS Server CAS Server(CAS服务端)负责完成对用户的认证工作,完成与浏览器端的用户认证和CAS客户端的票据验证。 ------------ ##CAS Client CAS Client(CAS客户端)负责处理对受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。 CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。 ------------ ##Ticket Grangting Ticket(TGT) TGT 是 CAS 为用户签发的登录票据,拥有了 TGT,用户就可以证明自己在CAS成功登录过。 TGT 封装了 Cookie 值以及此 Cookie 值对应的用户信息。用户在 CAS 认证成功后,CAS 生成 cookie(叫TGC),写入浏览器,同时生成一个 TGT 对象,放入自己的缓存,TGT 对象的 ID 就是 cookie 的值。 当 HTTP 再次请求到来时,如果传过来的有 CAS 生成的 cookie,则 CAS 以此 cookie 值为 key 查询缓存中有无 TGT,如果有,说明用户之前登录过,如果没有,则用户需要重新登录。 ------------ ##Ticket-granting cookie(TGC) 存放用户身份认证凭证的 cookie,在浏览器和 CAS Server 间通讯时使用,并且只能基于安全通道传输(Https),是 CAS Server 用来明确用户身份的凭证。 ------------ ##Service ticket(ST) 服务票据,服务的惟一标识码 , 由 CAS Server 发出( Http 传送),用户访问 Service 时,Service 发现用户没有 ST,则要求用户去 CAS 获取 ST。
springboot linux 长时间运行上传异常 解决方法 作者: juoliii 时间: 2023-04-20 分类: 开发,spring 评论 1. 配置spring ```java server.tomcat.basedir= ./tomcat ``` 2. 配置不删除tmp目录下的Tomcat ```bash vim /usr/lib/tmpfiles.d/tmp.conf x /tmp/tomcat.* ```