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

HTTPS请求头缺少HttpOnly和Secure属性解决方案

问题描述:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建立Filter拦截器类

package com.ruoyi.framework.security.filter;import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.service.TokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
import org.springframework.stereotype.Component;import javax.servlet.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** token过滤器 验证token有效性** @author ruoyi*/
@Component
public class JwtAuthenticationTokenFilter implements Filter {@Autowiredprivate TokenService tokenService;@Value("${token.expireTime}")private int expireTime;@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;LoginUser loginUser = tokenService.getLoginUser(request);if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())) {tokenService.verifyToken(loginUser);UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));SecurityContextHolder.getContext().setAuthentication(authenticationToken);Cookie[] cookies = request.getCookies();if (cookies != null) {for (Cookie cookie : cookies) {String value = cookie.getValue();String builder = "JSESSIONID=" + value + "; " +"Secure; " +"HttpOnly; " +"Expires=" + expireTime;response.setHeader("Set-Cookie", builder);}}}filterChain.doFilter(request, response);}@Overridepublic void destroy() {}}

在这里插入图片描述

相关文章:

  • 微服务实战系列之玩转Docker(二)
  • redis基本类型和订阅
  • 数据结构之初始二叉树(2)
  • docker网络互联
  • 机器学习-20-基于交互式web应用框架streamlit的基础使用教程
  • 企业如何查看员工的上网时长和记录?如何查看公司局域网员工电脑的上网记录
  • uniapp 开发 App 对接官方更新功能
  • 【Android】基础—基本布局
  • 校验el-table中表单项
  • Flink实时开发添加水印的案例分析
  • 【Qt】之【Bug】error:C1083 无法打开包括文件
  • 第七章 单片机的串行口
  • 小程序为什么要做分包处理
  • [Unity]碰撞器的接触捕获层详解
  • springboot 重新注册 bean
  • CAP理论的例子讲解
  • Git学习与使用心得(1)—— 初始化
  • JAVA多线程机制解析-volatilesynchronized
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 从tcpdump抓包看TCP/IP协议
  • 关于springcloud Gateway中的限流
  • 缓存与缓冲
  • 基于webpack 的 vue 多页架构
  • 近期前端发展计划
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 如何优雅地使用 Sublime Text
  • 网络应用优化——时延与带宽
  • 译有关态射的一切
  • 应用生命周期终极 DevOps 工具包
  • const的用法,特别是用在函数前面与后面的区别
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #if和#ifdef区别
  • #前后端分离# 头条发布系统
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $.each()与$(selector).each()
  • (1)无线电失控保护(二)
  • (2)MFC+openGL单文档框架glFrame
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (LeetCode) T14. Longest Common Prefix
  • (pojstep1.1.2)2654(直叙式模拟)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (四)js前端开发中设计模式之工厂方法模式
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net core 6 集成和使用 mongodb
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET 读取 JSON格式的数据
  • .net 连接达梦数据库开发环境部署
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /dev下添加设备节点的方法步骤(通过device_create)
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...