- 博客(965)
- 资源 (111)
- 问答 (1)
- 收藏
- 关注
原创 双Token认证+Cookie方案详细流程
本文档详细分析了基于Spring Boot的双Token认证(Access Token + Refresh Token)结合Cookie的完整认证方案。该方案通过Access Token进行短期访问控制,通过Refresh Token进行长期会话维持,同时利用Cookie机制实现安全的令牌传递。安全性:通过短期AccessToken和长期RefreshToken的配合,降低令牌泄露风险RefreshToken使用BCrypt哈希存储,避免数据库泄露导致令牌泄露。
2025-12-17 16:53:38
354
原创 安全的 Token 刷新机制:Refresh Token 轮换与权限实时同步
该方案通过服务端为每个登录行为生成唯一的 sessionId,并将 refreshToken 绑定到特定的 Cookie path 上,实现不同标签页使用不同的会话凭证,从而达到完全隔离的效果。该方案通过服务端生成 sessionId 的方式,确保了会话ID的唯一性和可靠性。每次登录行为都会产生一个全新的独立会话,结合 Cookie path 隔离机制,实现了完美的多标签页会话管理。相比前端生成会话ID的方案,这种服务端生成的方式更加安全可靠,是多标签页会话管理的最佳实践。会话级管理。
2025-12-15 18:43:15
1069
原创 docker-compose 之 达梦数据库(dm8-v201106)
(版本对应2020年11月06日),只是推送到了docerhub中,未做任何修改,请放心使用。达梦数据库初始化安装,需要先提取容器中的数据文件,然后再使用docker方式启动。注:本文是比较旧的达梦版本 v201106,较新的版本教程详见帖子 “这一步为了将数据文件拿到挂载目录中,防止以后删除容器导致数据丢失。如上配置后,最后使用。
2025-12-02 11:07:39
2171
3
原创 AI角色定义的重要性与实践指南
AI模型如ChatGPT、Claude等缺乏持续的个人身份记忆。每次对话都需要重新建立上下文。理解在当前对话中应该采用什么样的语气和风格确定适合的知识领域和专业水平了解应该关注哪些特定方面或观点“你是一名资深软件工程师”“你是一位经验丰富的市场营销专家”“你是医学领域的专业顾问”“我想了解如何优化网站加载速度”请你扮演一名有5年经验的前端性能优化专家。请用实用、易懂的语言解释网站加载速度优化技巧,避免过于学术化的术语。重点关注普通网站管理员可以立即实施的改进措施。
2025-12-01 19:46:00
501
原创 K8s 通过 Traefik Ingress 配置白名单IP访问限制
在现代微服务架构中,网络安全是至关重要的考量因素。Traefik作为业界领先的云原生反向代理和负载均衡器,提供了强大而灵活的IP白名单功能。✅ 精确控制服务访问权限✅ 防止未授权访问✅ 简化安全策略管理✅ 与Kubernetes原生集成通过Traefik Ingress注解方式配置IP白名单是一种既安全又灵活的访问控制方法。🔒基于网络层的安全控制,有效防范未授权访问🔄无需重启服务即可更新安全策略🧩支持IPv4/IPv6混合环境和复杂网络拓扑📊完善的日志和指标支持。
2025-12-01 17:30:40
776
原创 K8s 通过 Nginx Ingress 配置白名单IP访问限制
Ingress是Kubernetes中的一个API对象,用于管理外部访问集群内服务的路由规则,通常通过HTTP/HTTPS协议。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。当客户端请求经过代理或负载均衡器时,需要配置自定义Header来获取真实客户端IP。通过Nginx Ingress Controller配置IP白名单是在Kubernetes中实现访问控制的有效方法。使用注解可以灵活地控制访问权限,该注解会转换为底层的Nginx allow/deny指令来实现访问控制。
2025-12-01 17:24:57
1035
转载 几个能让 Claude Code 支持更多自定义模型 + API 中转 的工具
它支持多家提供商和多种模型(如 OpenRouter、DeepSeek、Ollama、Gemini、Volcengine),具体模型包括 google/gemini-2.5-pro-preview、anthropic/claude-4.5-sonnet、deepseek-chat 等。配置通过 ~/.claude-code-router/config.json 实现,可以设定默认模型、后台任务、思考模型和长上下文模型,并支持在运行时用 /model provider,model_name 进行切换。
2025-11-29 15:20:51
113
原创 Claude Code 常用指令使用说明
在项目根目录创建commandsdescription: '代码审查助手',// 自定义逻辑return '代码审查完成';项目初始化:每个新项目都使用/init创建记忆文件任务切换:不同任务间使用/clear清理上下文深度分析:复杂问题前添加快速执行:简单查询使用-p参数避免交互环境集成:结合IDE插件实现代码级协作上下文增强:合理配置MCP获取项目实时信息⚠️安全注意事项谨慎使用参数定期审查配置敏感项目中避免执行系统级命令导出的会话内容可能包含敏感信息,请妥善处理。
2025-11-29 15:09:25
1094
原创 SpringBoot 服务启动过程事件执行顺序解析
EventPublishingRunListener 的每个方法都精确对应 Spring Boot 应用生命周期的特定阶段,事件发布顺序严格遵循方法调用顺序。started() 和 ready() 方法内部的事件执行顺序体现了从"框架启动完成"到"业务完全就绪"的递进关系,设计严谨且语义明确。基于Spring Boot源码分析,事件执行顺序严格按照应用生命周期阶段划分,包含您提供的新增源码。• 多事件方法(started/ready)保持内部事件的执行顺序一致性。• 事件发布顺序严格遵循方法调用顺序。
2025-11-27 18:01:13
669
原创 TaskDecorator 与 CompositeTaskDecorator 装饰器设计模式解析
TaskDecorator与CompositeTaskDecorator的组合设计,展现了设计模式在解决实际问题中的强大能力。这种设计不仅体现了装饰器模式的动态扩展特性,还通过组合模式实现了多装饰器的统一管理。通过接口定义规范,确保扩展性通过组合实现灵活配置,而非硬编码通过引用嵌套而非重复执行,保证核心逻辑只执行一次通过链式调用,实现功能的有序执行通过洋葱模型,确保前置后置逻辑的正确顺序这种设计模式在现代软件架构中具有广泛的适用性,值得我们在日常开发中深入理解和灵活运用。(END)
2025-11-26 14:31:15
406
原创 Maven依赖树 dependency:tree 快速定位多模块项目的 jar 包依赖
Maven作为Java生态中最主流的构建工具,其依赖管理系统虽然强大,但在复杂项目中也带来了管理挑战。随着微服务架构的普及,多模块项目变得越来越常见,依赖关系呈指数级复杂化。依赖传递复杂:一个直接依赖可能引入数十个间接依赖版本冲突频发:不同路径引入相同依赖的不同版本排查困难:传统方式需要逐个检查模块的pom.xml文件效率低下:人工检查耗时耗力,容易遗漏提供的目标是解决这些问题的利器,通过合理的参数使用,可以快速精确地定位目标依赖。通过深入理解和灵活运用掌握核心语法。
2025-11-26 10:43:36
736
原创 Windows 安装 SDKMAN 详细教程(JDK 多版本管理)
通过以上步骤,你已成功在 Windows 系统中借助 Git Bash 安装并配置了 SDKMAN,并掌握其管理 JDK 的基本命令。未来你可以用它来轻松管理多版本的 Java、Groovy、Scala 等多种开发工具,提升开发效率。希望本教程对你有帮助。如需进一步学习 SDKMAN 的高级使用方法,欢迎参考其官方文档。(END)
2025-11-24 17:34:38
1366
原创 异常:Expected lookupPath in request attribute “org.springframework.web.util.UrlPathHelper.PATH“
必须手动配置 RequestMappingInfo.BuilderConfiguration显式设置 PatternParser 确保路径匹配机制正确避免因配置不完整导致的路径解析异常(END)
2025-11-15 17:13:35
390
原创 自定义conda环境和包下载目录
选择你希望存储的路径(如大容量磁盘) mkdir -p /data/conda/envs mkdir -p /data/conda/pkgs。
2025-11-13 19:00:06
252
原创 SpringBoot 通过 JMS 集成 IBM MQ
IBM MQ 作为老牌的企业级消息中间件,虽然在当下云原生时代已不再是主流选择,但在金融、银行、保险等传统行业的核心业务系统中仍然占据着重要地位。这些行业对系统的稳定性、可靠性和事务一致性有着极高的要求,IBM MQ 正是在这些方面表现出色。尽管近年来 RabbitMQ、Apache Kafka 等新一代消息中间件在新兴项目中更受欢迎,但许多金融公司和大型企业仍在使用 IBM MQ 作为核心业务系统的消息传递基础设施。
2025-11-13 09:42:16
430
原创 安装 flash-attn 出现的 PyTorch与CUDA版本兼容性问题
本地AI环境搭建的核心是版本兼容性。虽然PyTorch和CUDA不需要版本完全一致,但大版本必须匹配。建议按照"检查CUDA → 配置环境变量 → 安装兼容PyTorch → 编译flash-attn"的顺序进行,确保环境稳定运行。
2025-11-07 10:24:45
1364
原创 基于非对称算法的文件下载安全方案设计
本方案通过国密SM2非对称加密算法,成功解决了传统文件下载中的安全风险问题。方案设计巧妙,通过加密令牌机制有效防止了文件ID的直接暴露和批量下载攻击。整体架构简洁高效,在保证安全性的同时,也兼顾了系统的可用性和用户体验。这是一个优秀的文件下载安全解决方案,值得在类似的Web应用系统中推广应用。(END)
2025-11-05 19:30:21
1056
原创 在 WSL 的 Ubuntu 中安装和配置 SSH 服务
通过以上步骤,你已经成功在 WSL Ubuntu 中安装并配置了 SSH 服务器。现在你可以通过 SSH 安全地远程连接到你的 WSL 环境,享受 Linux 开发的便利。记住定期检查和更新你的安全配置,确保系统的安全性。
2025-11-05 14:43:00
835
原创 在 Windows 中基于 WSL 子系统 Ubuntu 安装配置 conda 示例
✅安装成功: Miniconda3 已成功安装在 WSL Ubuntu 环境中✅版本确认✅环境配置: 环境变量已配置,初始化完成✅可用状态: 可以创建和管理虚拟环境现在可以在WSL Ubuntu环境中正常使用Conda进行Python包管理和虚拟环境创建。(END)
2025-11-04 16:03:17
443
原创 Linux 自动清理临时文件配置
在 Linux 系统中,应用程序经常需要创建临时文件来存储运行时数据。然而,如果这些临时文件得不到妥善管理,它们会逐渐累积,最终耗尽宝贵的磁盘空间。配置应用程序临时文件的自动清理,是一种专业、可靠且符合 Linux 系统管理标准的最佳实践。它不仅简化了应用程序的开发,还提高了系统的安全性和可维护性。对于需要更复杂清理逻辑的场景,可以结合使用多个配置文件,或者在应用程序中实现精细的文件管理策略。机制,为你的应用程序配置一个自动清理的临时目录。的应用程序,需要一个专用的临时目录。
2025-11-04 14:35:45
874
1
原创 Windows 中使用命令设置环境变量
在Windows系统中,我们经常需要通过命令行来设置环境变量。本文将介绍如何在CMD和PowerShell中永久设置环境变量。
2025-11-04 14:17:52
400
原创 安装 Conda 并配置 LLM 开发环境
Conda 是一个开源的包管理和环境管理系统,主要用于 Python 编程语言,但也能支持 R、Ruby、Lua、Scala、Java 等其他语言。它能够轻松地创建、保存、加载和切换不同的开发环境,每个环境都可以拥有独立版本的软件包及其依赖关系,从而有效解决不同项目之间的包版本冲突问题。通过 Conda,开发者可以快速安装、运行和更新软件包,大大简化了软件部署和项目管理的复杂度。本文介绍如何安装 Conda 并搭建大语言模型开发环境。
2025-11-03 11:54:07
543
原创 大模型文件格式 Safetensors 和 GGUF
在大型语言模型(LLM)的生态系统中,和GGUF是两种至关重要的文件格式,但它们服务于不同的目的,由不同的组织创建,并在模型的生命周期中扮演着互补而非竞争的角色。特性GGUF定义组织Georgi Gerganov (llama.cpp 项目)本质通用的、高效的张量存储格式为特定推理引擎优化的完整模型文件格式主要用途在训练和模型分发阶段,安全高效地存储权重文件在推理阶段,为 llama.cpp 等推理引擎提供开箱即用的模型文件结构纯张量数据,需配合配置文件使用自包含文件(权重+元数据+词汇表等)
2025-10-31 16:48:42
456
原创 Jenkins Pipeline 中使用 GitLab Webhook 触发任务执行
通过Generic Webhook Trigger插件和Jenkinsfile的灵活的触发机制:基于JSONPath提取任意数据精确的条件控制:正则表达式过滤确保准确触发安全的访问控制:令牌验证防止未授权访问完整的自动化流程:从代码推送到构建部署的无缝衔接这种配置方式不仅提高了CI/CD流程的效率,还为团队提供了更加灵活和可靠的自动化构建解决方案。通过合理的配置和最佳实践的应用,可以构建出稳定高效的持续集成环境。(END)
2025-10-23 14:11:23
727
原创 Sprintf Boot 之 Nacos 配置中心实践(spring.config.import=optional:nacos:)
使用替代。通过 URL 参数灵活指定group和。采用实现类型安全的动态刷新。在关键属性的set方法中加入变化监听,实现细粒度控制。这能构建更清晰、可维护且响应灵敏的微服务配置体系。(END)
2025-10-21 17:35:13
546
原创 自定义 RequestMappingHandlerMapping 使用 RequestCondition 实现权限级请求映射
实现接口,定义匹配逻辑。@Override// 方法级别优先= null?@Override// 仅当请求 tag 与注解 tag 匹配时才匹配成功// 不匹配则跳过@Override@Override@Override重写方法,为带有的方法创建条件。@Override= null) {// 不影响无注解的方法本文展示了如何利用 Spring MVC 的机制,通过实现接口, 实现高度定制化的请求映射逻辑。
2025-10-16 19:08:59
331
原创 国密算法SM2、SM3、SM4功能特性对比
维度SM2SM3SM4功能数字签名、密钥交换数据完整性校验数据加密密钥公私钥对(256位)无共享密钥(128位)速度慢快中是否可逆是(需私钥)否是对应国际算法RSA / ECCSHA-256AES-128核心价值身份认证、信任建立防篡改保密传输✅结论:SM2、SM3、SM4各司其职:•SM2管“身份”和“信任”,•SM3管“完整性”,•SM4管“机密性”,三者共同构成中国商用密码体系的核心,实现自主可控的信息安全。(END)
2025-09-26 09:08:44
775
原创 Netty入门指南:构建Socket客户端与服务端的核心组件解析
组件作用Bootstrap启动客户端/服务端多线程事件循环,处理I/OChannel网络连接的抽象业务逻辑处理器处理器链,实现责任链模式ByteBuf高效的数据缓冲区Future异步结果通知机制掌握这些核心概念后,你就可以基于Netty构建稳定高效的网络通信程序。建议从简单的Echo服务入手,逐步尝试自定义协议、编解码、心跳机制等高级功能。📚 进一步学习建议:• 学习Netty的编解码框架(Codec• 实现心跳机制与空闲检测(• 掌握Netty的内存池与零拷贝机制。
2025-09-22 11:38:21
868
原创 Java 日志中 Marker 的深入解析与应用
Marker是SLF4J(以及Logback、Log4j 2)提供的一个接口,它本质上是一个命名对象。你可以把它想象成一个可以附加到日志语句上的"标签"或"戳记"。核心思想:有时,仅凭日志级别(如DEBUG, INFO, ERROR)不足以描述一条日志事件的特定属性或类别。Marker就是为了满足这种分类需求而设计的。通常,我们会将Marker定义为常量。// 定义Marker常量 public class AppConstants {
2025-09-01 13:55:10
1194
原创 Camunda 工作流发起表单节点,实践总结
是否需要"驳回给发起人"?↓是 → 设计第一个节点为:发起人 UserTask启动流程后自动 complete 该任务支持驳回后重新修改表单提供完整的流程审计记录↓否 → 第一个节点应为:审批人或处理人 UserTask启动流程时直接传入表单数据无额外 complete 操作提升系统性能和吞吐量。
2025-08-15 12:51:18
1195
原创 JConsole 使用详解:深入探索 JMX MBean 管理
JConsole 是 Java Development Kit (JDK) 自带的一款图形化监控工具,用于监控 Java 应用程序的性能和资源消耗情况。它基于 Java Management Extensions (JMX) 技术,可以连接到本地或远程的 Java 虚拟机 (JVM),提供对内存、线程、类加载和 MBean 等的实时监控。启动上述程序启动 JConsole 并连接到该程序在 MBean 标签页中找到域展开后可以看到type=HelloMBean。
2025-08-13 15:56:59
1446
原创 基于进程PID的本地JMX端口检测技术详解
监控JVM的运行状态获取应用的配置信息动态调用应用中的方法实时查看应用指标基于进程PID的本地JMX端口检测技术提供了一种优雅、可靠的解决方案,用于获取运行中Java应用的信息。实时性:获取的是应用运行时的实际状态可靠性:直接从JVM内部获取数据,避免解析错误扩展性:可以获取各种配置信息和运行时状态标准化:基于JMX标准,具有良好的兼容性通过本文的介绍,相信你已经掌握了这项技术的核心原理和实现方法。在实际项目中,你可以根据具体需求,扩展更多的MBean调用,实现更丰富的监控和管理功能。
2025-08-13 15:56:09
371
原创 基于进程PID的本地JMX端口检测技术详解
监控JVM的运行状态获取应用的配置信息动态调用应用中的方法实时查看应用指标基于进程PID的本地JMX端口检测技术提供了一种优雅、可靠的解决方案,用于获取运行中Java应用的信息。实时性:获取的是应用运行时的实际状态可靠性:直接从JVM内部获取数据,避免解析错误扩展性:可以获取各种配置信息和运行时状态标准化:基于JMX标准,具有良好的兼容性通过本文的介绍,相信你已经掌握了这项技术的核心原理和实现方法。在实际项目中,你可以根据具体需求,扩展更多的MBean调用,实现更丰富的监控和管理功能。
2025-08-13 15:18:16
1006
原创 一次意外的压测:IDEA 的 -XX:TieredStopAtLevel=1 竟让性能下降 10 倍
是 IDEA 为调试优化的“便利”,但会严重牺牲运行性能。本地压测 ≠ 真实性能,开发模式下的参数可能掩盖真实瓶颈。性能测试时,务必确保环境与生产尽可能一致。一次偶然的压测,暴露了 IDE 背后的“性能陷阱”。下次,别再让调试便利,误导了你的性能判断。(END)
2025-08-07 19:11:37
664
原创 SourceTree 每次启动都下载 Mercurial(禁用 Mercurial)
SourceTree 每次启动都下载 Mercurial 是一个常见但可解决的问题。通过安装本地 Mercurial、手动配置路径、清除缓存或重装软件,大多数情况下都可以解决。如果仍然无效,修改配置文件禁用 Mercurial 支持是一个非常有效的终极手段。(END)
2025-07-20 09:39:53
3392
2
原创 解决 Windows 文件夹无法删除的问题
通过 Windows 自带的资源监视器,我们可以快速定位到哪些程序正在占用某个文件夹,从而结束这些程序来释放文件夹的锁定。这种方法不需要安装第三方工具,适用于大多数 Windows 版本(包括 Win7、Win10、Win11)。(END)
2025-07-07 08:57:52
1035
1
原创 IDEA 插件开发:Internal Actions 与 UI Inspector 快速定位 PSI
在开发 IntelliJ 平台插件的过程中,你常常需要搞清楚的。下面这篇笔记将介绍如何通过 Internal Actions、UI Inspector 以及调试技巧快速定位 PSI 调用链。
2025-06-27 10:54:29
856
原创 MethodHandle 、Java 反射、Spring ReflectionUtils 对比报告
性能优秀:接近直接调用,远优于反射标准API:无需额外依赖,兼容性好易于使用:API简洁,学习成本低功能完整:支持所有常用场景对于大多数应用场景,MethodHandle 是最佳选择。只有在特殊需求下(如需要方法拦截、极致性能要求、私有成员访问等),才考虑其他方案。最终建议:一般场景:使用 MethodHandleSpring项目:考虑 Spring ReflectionUtils(特别是需要私有访问时)需要私有访问:使用反射或 Spring ReflectionUtils需要极致性能。
2025-06-25 10:12:49
666
spring+jms+jta事务的消息发送和消息消费
2015-12-13
apk加壳和伪加密(防止反编译)
2015-08-20
jacob、GhostScript转换Office为pdf,转换pdf为高清图片
2015-01-28
ghostscript-9.15-linux-x86_64.tgz免安装版
2015-01-15
Tomcat Session Redis 共享
2015-09-20
中国“新基建”发展研究报告.pdf.zip
2020-08-17
SpringBoot学习过程各种Demo
2016-02-03
Java敏感词处理
2015-08-14
Android 关于设备状态和操作的API
2015-08-12
基于jd-core的java反编译
2017-03-27
windows包装exe创建服务文件instsrv和srvany
2017-12-04
springboot2.x 多数据源
2020-05-28
ESXi Intel-I129V 网卡驱动
2021-08-29
docker-pkg.tar.gz
2019-11-09
kafka-web-console-2.1.0-SNAPSHOT.zip
2016-08-31
单核工作法图解(文字版非扫描)PDF
2018-03-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅