- 博客(51)
- 资源 (4)
- 收藏
- 关注
原创 SSO 单点登录 解决方案
本文介绍了三种主流的SSO单点登录解决方案:1)基于共享会话的方案,适用于统一域名场景;2)CAS中心化认证服务,通过TGC和ST实现跨服务认证;3)JWT无会话方案,适合微服务架构。重点分析了OAuth2/OIDC协议的工作流程,包括授权码模式、PKCE安全扩展以及BFF架构设计。最后推荐了Keycloak、Auth0和Spring Authorization Server三种身份提供商,并给出混合部署建议。文章为不同场景下的身份认证需求提供了全面的技术选型参考。
2025-12-20 17:57:01
925
原创 非对称加密 原理: RSA 加密与签名
加密与解密使用相同密钥, 比如: AES加密与解密使用不同的密钥, 比如: RSAAES 很好理解, 下面对RSA的原理及用法进行介绍。
2025-12-20 13:35:45
690
原创 数据库事务隔离级别,以及幻读偏斜问题解决
摘要:SQL标准定义了四种事务隔离级别(读未提交、读已提交、可重复读、串行化),分别解决脏读、不可重复读和幻读问题。MySQL支持所有级别,InnoDB默认采用可重复读。不同数据库实现方式不同,PostgreSQL和Oracle采用MVCC+提交检测,MySQL使用锁机制。锁定读(如SELECT FOR UPDATE)可解决幻读问题,但MVCC通过多版本快照实现读写并行。在可重复读级别下,写操作可能导致写偏斜(广义幻读),表现为基于过期快照决策违反约束。不同数据库处理写冲突方式各异,PostgreSQL/O
2025-11-21 10:21:12
29
原创 Spring Boot 单元测试按需加载
在Spring Boot测试中,可以通过使用@MockBean或者自定义配置来实现按需加载Bean,避免加载不必要的组件。比如在测试 TopicProducer 类时,而在 TopicConsumer 类中的一些配置会影响到测试的进行,需要排除。
2025-11-15 03:32:49
441
1
原创 Debian 13 安装 Kubernetes 最新版 并使用 containerd 运行时
基于 Debian 13(代号 “Trixie”)虚拟机环境,搭建一个 单 Master + 单 Worker 的 Kubernetes 集群,使用 containerd 作为容器运行时,并采用 kubeadm 工具部署 Kubernetes v1.34.1。
2025-11-08 14:18:48
698
原创 Linux 终端快捷键
向右删除短单词(单词仅包含字母,以空格和特殊字符分隔)- 向左删除长单词(单词包含特殊字符,以空格作为分隔)- 查看历史记录,并显示行号。- 向左移动光标至单词首。- 向右移动光标至单词尾。- 终止,并开启新行。- 逐条查看最近命令。
2025-11-07 09:42:27
181
原创 Vim 渐进式指南(简单入门,精通学成)
本文介绍了Vim编辑器的五种基础模式及其切换方法,包括普通模式、编辑模式、命令模式、可视模式和替换模式。详细说明了各模式间的转换指令,如a/i/o进入编辑模式、:进入命令模式、v/V进入可视模式等。重点讲解了文本编辑操作(删除、复制、粘贴、撤销)、光标移动技巧(字符/单词/行级/文件级跳转)以及寄存器使用注意事项。文档通过清晰的指令分类和实用提示,帮助用户快速掌握Vim的高效编辑方式,特别强调鼠标与键盘指令的协同使用能提升操作效率。
2025-10-25 04:53:04
877
原创 Linux 用户管理(常用命令:useradd、usermod、chmod)
本文介绍了Linux系统中用户、组和权限管理的常用命令。主要内容包括:1)用户操作命令adduser(交互式创建)、useradd/usermod/userdel;2)组操作命令groupadd/groupmod/groupdel;3)查看用户信息的id/groups命令;4)修改密码的passwd命令;5)权限管理命令chmod的使用方法及常见权限组合(如755、644等)。特别说明了adduser与useradd在Debian/Ubuntu和CentOS系统中的区别,并详细列举了各命令的常用选项和示例。
2025-10-22 03:38:02
296
原创 通过 OAuth2 实现 单点登录(SSO)解决跨域问题
本文分析了Session/Cookie机制在分布式系统中的局限性,并系统介绍了OAuth2的登录授权流程与跨域解决方案。主要内容包括:1)传统Session依赖Cookie存在跨域问题;2)OAuth2通过授权码模式实现跨域认证,其核心是重定向与Token机制而非Cookie;3)两种典型SSO场景(跨顶级域和同父域)的实现差异;4)澄清了OAuth2跨域能力的常见误区;5)建议采用统一认证中心+业务系统独立维护会话的方案,避免依赖Cookie跨域共享。文章强调OAuth2协议本身支持跨域,但需配合适当技术
2025-10-12 15:11:45
954
原创 命令行安装 MySQL 8.4.6
摘要:本文介绍了Windows系统下MySQL 8.4.5社区版的安装配置步骤:1)从官网下载ZIP包并解压;2)设置环境变量Path;3)初始化数据库获取root临时密码;4)安装并启动MySQL服务;5)修改root密码;6)创建dev数据库和用户。包含服务管理命令(安装/启动/停止/卸载)和SQL操作(修改密码、创建数据库用户等),提供了完整的MySQL安装配置指南。(149字)
2025-10-05 14:12:06
341
原创 Java 21 或 JavaFX 打包 exe 之 GraalVM Native Image 方案
本文介绍了三种将JavaFX项目打包为exe的方案:1)使用Java运行时+exe启动器(jpackage工具),生成包体积较大但通用性强;2)采用Java模块化开发(jlink+jpackage),通过定制运行时镜像减小体积,但处理非模块化依赖较复杂;3)GraalVM Native Image方案,将Java直接编译为原生二进制exe,性能最优但配置较复杂。每种方案都详细说明了具体实现步骤,包括Gradle配置、工具安装和打包命令。
2025-10-03 19:52:11
1156
原创 Idea 快捷键
这篇文章整理了常用的代码编辑器快捷键,主要分为查找、窗口导航、光标导航、代码导航、层次结构、书签、编辑、代码提示、代码重构等功能类别。作者根据个人编码习惯进行了分类,并对部分快捷键进行了修改或添加,以适应VS Code的使用需求。快捷键涵盖了从基础编辑到代码重构的多种操作,如全局查找(Ctrl+Shift+F)、复制行(Ctrl+D)、重命名(Shift+F6/F2)、格式化文档(Ctrl+Alt+L)等。部分快捷键特别标注了修改或添加说明,方便用户参考和自定义。
2025-09-29 06:36:49
532
原创 Jenkins 部署脚本 jar包,Spring Boot 的打包方式
Jenkins 部署脚本 jar包,Spring Boot 的打包方式 插件配置 Publish Over SSH
2024-11-04 04:37:38
284
2
原创 Excel 列名从字母转为数字索引
摘要:该算法将Excel列字母索引转换为数字索引(如A→0,B→1,Z→25,AA→26)。通过26进制转10进制的思路,逐个字符计算其值并累加,最终结果减1得到目标索引。代码示例中实现了该转换逻辑,并包含输入验证。
2023-03-14 04:14:03
462
原创 Quartz Cron 表达式
常用例子0/30 * * * * * 每30秒触发0 0 10,14,16 * * ? 每天上午10点,下午2点,4点0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时0 0 12 ? * WED 表示每个星期三中午12点0 0 12 * * ? 每天中午12点触发0 15 10 ? * * 每天上午10:15触发0 15 10 * * ? 每天上午10:15触发0 1...
2019-08-24 17:07:05
826
原创 Win10 蓝牙鼠标,删除失败
突然发现蓝牙鼠标用不了了。然后重新配对成功,但是打开Windows的蓝牙设备管理,发现有2个一样的,第一个是我之前连的蓝牙鼠标,然后删除也显示删除失败。第二个是我重新连接的蓝牙鼠标。解决办法:进入设备管理器点击菜单“查看”,选中“显示隐藏的设备”找到鼠标的驱动,全部删除,然后重新配对,驱动也会自动添加。如图:...
2019-04-01 06:15:34
38874
21
原创 HttpClient 发送GET请求
1. 示例代码:public class HttpClientTest { public static void main(String args[]) { //创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); //H
2018-10-11 05:31:50
352
原创 Oracle 字符分隔 实现split函数
管道化表函数必须返回一个集合。在函数中,PIPE ROW 语句被用来返回该集合的单个元素,该函数必须以一个空的 RETURN 语句结束,以表明它已经完成。一旦我们创建了上述函数,我们就可以使用 TABLE 操作符从 SQL 查询中调用它。
2018-10-11 05:24:47
628
原创 SqlServer 示例:with as 递归查询、一行转多行
WITH Temp AS ( SELECT 1 AS XuHao,--初始序号为1 T1.Id FROM U_SDP1 T1 WHERE T1.DocEntry = @DocEntry UNION ALL SELECT Tm.XuHao+1 AS XuHao,--序号递增 T1.Id FROM Temp Tm INNER JOIN U_SDP1 T1 WHERE Tm.I...
2018-10-11 05:08:06
1300
原创 Eclipse 导入 Maven 项目编码设置
设置项目全局编码,只需要在 pom.xml 文件中的 properties 元素下添加一个属性即可(即便没有再文件中引用)。<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>添加该配置后,将项目导入Eclipse时,会在org.eclipse.core.re
2017-07-05 11:05:37
2637
原创 MD5加密工具类
package com.bqzl.qiantaicheapp.utils;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * MD5加密工具类 * @author
2017-07-03 14:11:50
440
原创 HttpClient 发送 POST 请求
HttpClient 发送 POST 请求HttpClientBuilder用于创建CloseableHttpClient实例。在 HttpClient 新的版本中, AbstractHttpClient、 AutoRetryHttpClient、 DefaultHttpClient等都被弃用了,使用HttpClientBuilder代替。
2016-05-08 18:12:21
5962
原创 Tomcat出现access denied错误解决方案
在Eclipse中构建J2EE项目时,Tomcat出现access denied错误,不能正常启动Tomcat。异常信息:java.security.AccessControlException: access denied (“java.lang.RuntimePermission” “accessClassInPackage.org.apache.catalina.core”)
2016-05-06 13:22:53
5842
原创 修改 oracle xe 字符集 ZHS16GBK
Oracle XE 执行安装程序后,很简单的默认为 SIMPLIFIED CHINESE_CHINA.AL32UTF8 ,通过如下方法可以修改成为 ZHS16GBK 。 客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。客户端的字符集设置存在多个地方: session>环境变量>注册表>参数文件 字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_
2016-04-21 19:23:06
2489
原创 Oracle 数据导入导出 imp/exp
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能我们可以从生产库中导出数据库,再导入数据库到测试库中。执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行是由于在oracle中,安装目录\ora9i\bin被设置为全局路径(也可直接在系统环境变量中设置),该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
2016-04-21 18:28:22
554
原创 JAVA实现DES加密实现详解
DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES加密算法出自IBM的研究, 后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力, 24小时内即可被破解。虽然如此,在某些简单应用中,我们还是可以使用DES加密算法,本文简单讲解DES的JAVA实现 。
2016-04-12 17:56:20
1035
原创 PuTTY免输密码自动登录Linux
PuTTY不提供“记住密码”一类的选项——PuTTY自动登录Linux系统,需要使用公钥/私钥方式。 这种方式需要生成一组对应的公钥(简短的字符串)和密钥(一个文件),然后把公钥放到树莓派上,私钥提供给PuTTY。PuTTY仍然不知道你的密码,而是通过与服务器核对密钥而核实身份。
2016-04-02 13:41:22
33828
原创 Oracle 的 bulk collect 和 forall 用法
FORALL语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL程序中更新很多行数据的程序来说,它可显著提高其性能。1:用FORALL来增强DML的处理能力Oracle为Oracle8i中的PL/SQL引入了两个新的数据操纵语言(DML)语句:BULK COLLECT和FORALL。这两个语句在PL/SQL内部进行一种数组处理;BULK COLLECT提供对
2016-02-16 17:18:34
908
转载 Java开发中的23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真
2016-01-11 06:45:57
467
转载 Oracle高级查询,GROUP BY
为了方便大家学习和测试,所有的例子都是在Oracle自带用户Scott下建立的。现在客户的需求是统计部门中每种工作的工资总额,最后还需要统计所有人的工资总数,相信这样的需求对大家来说还是比较简单的,很快就能写出SQL语句,如下:[sql] view plaincopyselect deptno, job, sum(sal) from s
2015-12-31 23:05:56
485
转载 Oracle高级查询,over 用法
注:标题中的红色order by是说明在使用该方法的时候必须要带上order by。一、rank()/dense_rank() over(partition by ...order by ...)现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:[sql] view plaincopy
2015-12-31 22:47:08
6114
原创 Spring4+Hibernate4 事务管理 配置 注解 AOP
sessionFactory.getCurrentSession()1. Hibernate 自动管理,thread方式实现。需要手动开启和关闭事务。<property name="current_session_context_class">thread</property>2. Spring 自动管理,通过AOP或注解实现。自动开启和关闭事务。 <tx:annotation-driven tran
2015-12-25 21:54:07
7359
转载 SpringMVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。 一、定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在
2015-12-20 00:44:32
3300
转载 深入浅出Mybatis-与Spring集成
单独使用mybatis是有很多限制的(比如无法实现跨越多个session的事务),而且很多业务系统本来就是使用spring来管理的事务,因此mybatis最好与spring集成起来使用。前置要求版本要求项目版本下载地址说明mybatis3.0及以上https://github.com
2015-12-18 22:41:25
434
转载 Maven 手动添加 JAR 包到本地仓库
Maven 手动添加 JAR 包到本地仓库Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,我宿舍的带宽是4兆的,4个人共用,有时候用 Maven 来远程下载 JAR 包会显得很慢,一般我发现下载速度不明显的时候,我就 Ctrl + C 来终止它的下载。然后改用手动来下载,因为用迅雷一类的工具来下载会快很多。我机子上
2015-12-18 16:23:27
339
PLSQL Developer 10 0 5 1710 内附中文包和注册机
2014-03-16
Eclipse反编译插件 JD-Eclipse 含安装步骤(jd-eclipse-site-1.0.0-RC2)
2015-05-24
Windows版本JDK:jdk1.8.0_192_x64.zip
2020-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅