
Java的小小世界
文章平均质量分 79
御前提笔小书童
喜时不诺,怒时不争,哀时不语,倦时有终;
静以修身,俭以养德;
----------------------御前提笔小书童
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重庆智能交通综合管理系统认证中心SSO接入
重庆智能交通综合管理系统认证中心SSO接入提示:统一身份认证平台为局内用户提供用户身份鉴别服务,单点登录功能。平台提供统一用户、权限管理和系统接入等能力,可以更高效的管理人员变动和权限调整。同时承担各个业务系统与门户的跳转认证责任。前言此文档基于OAuth2.0的Authorization Code授权模式一、实现原理SSO单点登录是基于共享统一身份认证平台的cookie来实现的,对接流程如下:1.当系统A登录成功后2.统一身份认证平台里面会保存了系统A中的登录信息建立全局会话,并把自原创 2021-10-26 20:42:58 · 1138 阅读 · 0 评论 -
SpringBoot 使用JavaMailSender
邮件发送是一个非常常见的功能,最初 Sun 公司提供了 JavaMail 用来实现邮件发送,但是配置烦琐。后来 Spring 中提供了 JavaMailsender 用来简化邮件配置,而 Spring Boot 则提供了 MailSenderAutoConfiguration 对邮件的发送做了进一步简化。在开始之前我们需要申请开通 POP3/SMTP 服务或者 IMAP/SMTP服务。这里使用的是Foxmail邮箱:操作步骤如下:为了保障用户邮箱的安全,QQ邮箱提供了POP3/IMAP和Exchan原创 2021-05-31 18:30:04 · 2888 阅读 · 2 评论 -
《这是知识点》之上传POST可绕过Java过滤器
项目场景:提示:公司有个项目做安全测评时发现了一个注入问题。系统设置了全局的XSS过滤器,在其他功能点上生效了,但在一个发布功能没有被过滤,后续排查发现安全测评走的是上传包注入方式,故记录此次问题问题描述:问题功能模块的作用是一个添加相关参数并上传附件的点,问题出在添加的参数未被全局XSS过滤器生效 原因分析:基于Tomcat和Spring MVC的底层代码分析问题原因常用的请求分文三种,GET型请求,普通POST型请求和上传POST型请求。本文的普通型POST请求指的是除上传POS原创 2021-01-30 15:42:20 · 713 阅读 · 0 评论 -
《伸手系列》之分布式ID生成解决方案
一、为什么要用分布式ID?1. 什么情况下我们需要ID生成器数据库水平拆分的情况下,主键由于需要作为业务标识使用,需要唯一。业务编号需要暴露给用户,但是又不想被用户猜到需要被隐藏的业务编号业务编号需要体现业务信息,比如订单分类订单渠道等等拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据原创 2020-10-24 13:21:00 · 1373 阅读 · 4 评论 -
《伸手系列》之CXF调用webService接口的两种方式,支持http和https
最近发现一个旧项目的调用webservice接口不支持HTTPS,故支持一下,顺便分享一波目前一般做这种通用的接口调用,对于HTTPS的接口一般都是忽略验证,直接跳过;本文基于WSDL的webservice接口地址开发具体两步:1、跳过https的验证private static void trustAllHosts() { TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {.原创 2020-08-30 14:25:53 · 1799 阅读 · 1 评论 -
RSA之基于hutool的快速实现
刚刚临时帮同事写个rsa加密的工具包,基于hutool的快速实现,随手给需要的小朋友,非依赖hutool的请看我另外的文章,RSA加密算法Java应用解析-目前地球上最有影响力的加密算法RSA工具包2020年08月02日21:06:42 关于RSA就不多说了,直接上干货一、首先获取公私钥// 第一次使用时获取,获取后保存公私钥,不要重复获取Map<String, String> stringStringMap = RsaUtils.generateKeyPair();.原创 2020-08-02 21:20:21 · 5517 阅读 · 1 评论 -
《这是知识点》之ApplicationContextInitializer源码和简单使用
一、 ApplicationContextInitializer 介绍首先看下spring官方说明源码package org.springframework.context;/** * Callback interface for initializing a Spring {@link ConfigurableApplicationContext} * prior to being {@linkplain ConfigurableApplicationContext#refresh()原创 2020-07-30 19:18:20 · 740 阅读 · 0 评论 -
《伸手系列》之分布式锁Redssion入门和源码解析
Redisson简介Javaer都知道Jedis,Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持。Redission也是Redis的客户端,相比于Jedis功能简单。Jedis简单使用阻塞的I/O和redis交互,Redission通过Netty支持非阻塞I/O。Jedis最新版本2.9.0是2016年的快3年了没有更新,而Redission最新版本是2018.10月更新。Redission封装了锁的实现,其继承了java.util.concurrent.lo原创 2020-06-30 23:19:14 · 1291 阅读 · 0 评论 -
《探错笔记》之redis集群出现单节点宕机应用无法正常连接
项目中 redis集群出现单节点宕机,造成master迁移,但是发现应用无法正常连接redis问题场景Redis集群出现单节点异常造成master迁移时,底层基于Lettuce实现的应用程序无法正常连接Redis分析分析了代码,发现默认Lettuce是不会刷新拓扑io.lettuce.core.cluster.models.partitions.Partitions#slotCache,最终造成槽点查找节点依旧找到老的节点,自然访问不了了解决方案直接上代码,通过配置ClusterTopolo.原创 2020-06-29 15:01:37 · 1850 阅读 · 1 评论 -
IntelliJ IDEA 编译程序出现 非法字符 的 解决方法
IDEA出现:“异常 illegal character 200B” 、“’ u200b’”、“\65279”等错误时,一般都是出现直接复制别人代码的造成的。通常有两个解决办法修改idea的编译设置,增加参数在 Settings 中的 Build 下面的 Compiler 下。修改 Java Compiler在 Additional comman line parameters(附加参数)中添加参数 -encoding UTF8 即可。2.编码格式转换由于基本是编码格式造成,故可以先进行原创 2020-05-29 10:37:58 · 2322 阅读 · 0 评论 -
《探错笔记》之Springboot集成ES报org.elasticsearch.client.transport.NoNodeAvailableException异常
问题目前出现以下异常org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available的大部分原因都是因为springboot直接使用 <dependency> <groupId>org.spring...原创 2020-03-20 13:39:38 · 3156 阅读 · 0 评论 -
Springboot修改内嵌Tomcat版本
最近Tomcat爆出高危漏洞,基本影响所有的Tomcat版本,故需要对springboot项目进行版本升级ps:一般不建议修改springboot内嵌版本,内嵌版本都是经过验证比较稳定的版本1、查询springboot内嵌的版本使用idea等工具可以直接通过pom文件查看下面parent里面的Tomcat版本<dependency> <groupId>o...原创 2020-02-29 20:34:40 · 3118 阅读 · 1 评论 -
《伸手系列》之基于springboot的动态数据源启动器
一个基于springboot的快速集成动态多数据源的启动器 简介dynamic-datasource-spring-boot-starter 是一个基于com.baomidou二次开发的springboot的...原创 2019-12-25 23:12:00 · 442 阅读 · 0 评论 -
MyBatis Plus之like模糊查询中包含有特殊字符(_、\、%)
解决思路:自定义一个拦截器,当有模糊查询时,模糊查询的关键字中包含有上述特殊字符时,在该特殊字符前添加\进行转义处理。问题提出使用MyBatis中的模糊查询时,当查询关键字中包括有_、\、%时,查询关键字失效。问题分析当like中包含_时,查询仍为全部,即 like '%_%'查询出来的结果与like '%%'一致,并不能查询出实际字段中包含有_特殊字符的结果条目like中包括%时...转载 2019-11-30 21:51:03 · 10119 阅读 · 3 评论 -
远程调用Linux shell 命令 查看物理主机内存和磁盘空间情况
package cn.gwssi.data.db.monitor.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import jav...原创 2019-03-28 17:30:27 · 1059 阅读 · 0 评论