【BUG排查记】HttpUtil和SpringSecurity结合的坑
一、背景
二、问题描述
三、问题分析
# 使用hutool工具发起远程http请求
HashMap<String, String> headers = getHeader(modelSyncGitDto);
HttpRequest request = HttpUtil.createRequest(Method.POST, url);
HttpResponse execute = request
.addHeaders(headers)
.timeout(2000)
.body(JSONUtil.toJsonStr(modelSyncGitDto))
.execute();
# 通用工具生成jwt token放入header
private HashMap<String, String> getHeader(ModelSyncGitDto modelSyncGitDto){
String userJwtToken = JwtUtils.getJwtToken(filterConfig.getAcSecret(),null,modelSyncGitDto.getComputerUserName(),modelSyncGitDto.getOsName());
HashMap<String, String> headers = new HashMap<>(200);
headers.put("Token", userJwtToken);
return headers;
}
# 被调用方获取token
String token = CookieUtils.resolveCookie(request, tokenKey);
if (Objects.isNull(token) || token.isBlank()){
token = request.getHeader(tokenKey);
}
if (Objects.isNull(token) || token.isBlank()){
token = request.getParameter(tokenKey);
}
return token;
log.info("http请求返回,cookie={}", execute.getCookies());
# 创建request增加禁用cookie
HttpRequest request = HttpUtil.createRequest(Method.POST, url);
HttpResponse execute = request
.disableCookie()
.addHeaders(headers)
.timeout(2000)
.body(JSONUtil.toJsonStr(modelSyncGitDto))
.execute();
四、梅开二度
4.1 配置对比
server:
servlet:
session:
# session超时时间,不能小于1分钟
timeout: 481m
# 浏览器 Cookie 中 SessionID 名称
cookie:
name: Token
path: /
tracking-modes: COOKIE
4.2 二次请求
4.2 日志对比
4.3 终极原因
五、总结
- 本版本hutool的HttpUtil请求缓存了上一次请求的cookie,并在下一次携带;
- Spring Security 默认会将Cookie设置在当前应用所在的域下,即localhost。请求方也为localhost所在节点,由于http同源策略,导致返回的response中存在cookie。
【BUG排查记】HttpUtil和SpringSecurity结合的坑的更多相关文章
- 记一次线上bug排查-quartz线程调度相关
记一次线上bug排查,与各位共同探讨. 概述:使用quartz做的定时任务,正式生产环境有个任务延迟了1小时之久才触发.在这一小时里各种排查找不出问题,直到延迟时间结束了,该任务才珊珊触发.原因主要就 ...
- Android分组子级的不同视图布局之BUG奇遇记
Android分组子级的不同视图布局之BUG奇遇记 最近在使用按日期分类列表,二级条目可能不一样,于是就想到了ExpandableListView. ExpandableListView的布局显示分割 ...
- 日常Bug排查-系统失去响应-Redis使用不当
日常Bug排查-系统失去响应-Redis使用不当 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 开发反应线上系统出现失去响 ...
- 日常Bug排查-消息不消费
日常Bug排查-消息不消费 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 某天下午,在笔者研究某个问题正high的时候.开 ...
- 日常Bug排查-抛异常不回滚
日常Bug排查-抛异常不回滚 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 最近有人反映java应用操作数据库的时候,抛异 ...
- 日常Bug排查-Nginx重复请求?
日常Bug排查-Nginx重复请求? 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,其中不乏一些看起来很低级但很容易犯的问题. 问题现场 有一天运维突然找到 ...
- wordpress插件bug排查后记(记一次由于开启memecached引起的插件bug)
这篇文章是写给自己的. 周三的时候我在维护公司的一个wordpress项目页面时发现了一个非常奇怪的情况:当我尝试更新网站上的一个页面后,在wordpress后台的编辑器中发现其内容并没有按我预期的将 ...
- 记一次偶发的bug排查——redis-py-cluster库的bug
排查流水账: 通过平台监控,发现很多偶发的查看推荐列表的接口时延大于0.5s 写单元测试,不能重现.在测试环境不能重现.只有在正式环境可以偶发重现. 通过日志埋点,等待重现 不断地加日志埋点后发现耗 ...
- 团队项目-BUG排查-ADT工程 To Android Studio 一整天的排查日记
4-22 10:44至4-23 0:45 ①打开Eclipse从Github上Clone MathsApp到本机,报错'Unable to resolve target'android-19' ②尝试 ...
- 一次压力测试Bug排查-epoll使用避坑指南
Bug复现 使用Webbench对服务器进行压力测试,创建1000个客户端,并发访问服务器10s,正常情况下有接近8万个HTTP请求访问服务器. 结果显示仅有7个请求被成功处理,0个请求处理失败,服务 ...
随机推荐
- 好好的Typora收费了!_2022_01_20
好好的Typora收费了!_2022_01_20 用惯了Typora真的很难再去换别的MarkDown编辑工具了,导出都找不到合适的.1.0以前的不需要验证的版本直接就不能打开了,真是头大. 到处找不 ...
- Mysql(1)—简介及Windows环境下载安装
Mysql(1)-简介及Windows环境下载安装 一.关于Mysql 1.1 简介 MySQL是一个流行的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)进行操作.MySQL由瑞典 ...
- Flink CDC 与Hudi整合
介绍 之前写过Flink CDC sink 到 Iceberg中,本篇主要实践如何CDC到hudi中. 什么是hudi? Hudi is a rich platform to build stream ...
- 3.18 Linux懒人神器:命令自动补全功能!
文件名(或者目录名)是执行 linux 命令中最常见的参数,例如前面介绍的 cd.mkdir.cp 等命令,都涉及到了文件名.然而对初学者来说,输入完整的文件名感觉很麻烦,尤其面临文件名(目录名)特别 ...
- SynthID Text 现已发布|在 AI 生成文本中应用不可见水印的新技术
你是否难以分辨一段文本是由人类撰写的,还是 AI 生成的?识别 AI 生成内容对于提升信息可信度.解决归因错误以及抑制错误信息至关重要. 今天,Google DeepMind 和 Hugging Fa ...
- 14.Kubernetes核心技术Helm
Kubernetes核心技术Helm Helm就是一个包管理工具[类似于npm] 为什么引入Helm 首先在原来项目中都是基于yaml文件来进行部署发布的,而目前项目大部分微服务化或者模块化,会分成很 ...
- 高性能计算-gemm串行计算优化(3)
目标:Darknet 源码cpu矩阵乘法函数 gemm_nn 优化.参数说明:lda A的列数; ldb B的列数; ldc C的列数; M C的行数; K A的列数 测试方法:Darknet源码,m ...
- Graylog之告警
官方文档:https://docs.graylog.org/en/3.0/index.html 前面我们已经了解了Graylog的搭建,以及日志的接入方法.我们知道graylog可以将收集的的日志通过 ...
- Django常用第三方包
有用的包资源: 核心 Django : Web 框架. django-debug-toolbar : 显示面板用于调试 Django HTML 视图. django-model-utils : 很有用 ...
- 德承工控机DX-1200 成功适配2024年6月6日发布的国产开源系统OpenEuler 24.03 LTS
基础软件双子星:欧拉系统(OpenEuler)& 鸿蒙系统(OpenHarmony),鸿蒙系统常应用在华为的手机和平板电脑上,大众也较为熟悉,是面向消费电子产品领域的系统:而欧拉系统则是面向服 ...