通常接口返回值中的一些敏感数据也是要脱敏的,比如身份证号、手机号码、地址.....通常的手段就是用隐藏一部分数据,当然也可以根据自己需求定制。言归正传,如何优雅的实现呢?有两种实现方案,如下:整合Mybatis插件,在查询的时候针对特定的字段进行脱敏整合Jackson,在序列化阶段对特定字段进行脱敏基于ShardingSphere实现数据脱敏,查看之前的文章:基于ShardingSphere实现数据“一键脱敏”第一种方案网上很多实现方式,下...
2022-07-18 16:55:21 2819浏览 0点赞 0回复 0收藏
今天这篇文章就来回答一个问题:如何自定义token的返回格式?问题描述SpringSecurityOAuth的token返回格式都是默认的,但是往往这个格式是不适配系统,oauthtoken返回的格式如下:{"accesstoken":token"tokentype":"bearer","refreshtoken":xxxx"expiresin":xxx,"scope":"xxx","jti":xxxx....................}然而此时系统中的统一返回格式为:{"code":xxx"data":xxx"msg":xxx}那么如何去对默认的格式进行修改呢?解决方案其实...
2022-07-18 16:55:14 2827浏览 0点赞 0回复 0收藏
前天朋友咨询过我一个问题,大致内容如下:这位读者什么意思呢?简单的总结下:在ShardingJDBC中明明只是简单的使用Transactional这个本地事务注解,为什么在跨库插入数据时候却能够同时回滚?我们知道单数据节点的情况下保持事务是非常简单的,只需要使用本地事务即可轻松解决,比如常用的注解:Transactional但是在分库后将会存在跨库的事务,此时本地事务还能保证事务吗?这篇文章就以球友的提问来聊一下ShardingJDBC中的本...
2022-07-18 16:55:07 2632浏览 0点赞 0回复 0收藏
最近一直畅游在RocketMQ的源码中,发现在RocketMQ中很多地方都使用到了CompletableFuture,所以今天就跟大家来聊一聊JDK1.8提供的异步神器CompletableFuture,并且最后会结合RocketMQ源码分析一下CompletableFuture的使用。Future接口以及它的局限性我们都知道,Java中创建线程的方式主要有两种方式,继承Thread或者实现Runnable接口。但是这两种都是有一个共同的缺点,那就是都无法获取到线程执行的结果,也就是没有返回值。于...
2022-07-18 16:54:58 2048浏览 0点赞 0回复 0收藏
前面我们通过Redis分布式锁实现Redisson15问文章剖析了Redisson的源码,理清了Redisson是如何实现的分布式锁和一些其它的特性。这篇文章就来接着剖析Zookeeper分布式锁的实现框架Curator的源码,看看Curator是如何实现Zookeeper分布式锁的,以及它提供的哪些其它的特性。Curator框架是封装对于zk操作的api,其中就包括了对分布式锁的实现,当然Curator框架也包括其它的功能,分布式锁只是Curator的一部分功能。本文的目录跟Redi...
2022-07-18 16:54:25 1230浏览 0点赞 0回复 0收藏
大家好,我是三友。在一个分布式系统中,由于涉及到多个实例同时对同一个资源加锁的问题,像传统的synchronized、ReentrantLock等单进程情况加锁的api就不再适用,需要使用分布式锁来保证多服务实例之间加锁的安全性。常见的分布式锁的实现方式有zookeeper和redis等。而由于redis分布式锁相对于比较简单,在实际的项目中,redis分布式锁被用于很多实际的业务场景中。redis分布式锁的实现中又以Redisson比较出名,所以本文来着重...
2022-07-18 16:53:48 3202浏览 0点赞 0回复 0收藏
经常会遇到这样一种情况:项目的配置文件中总有一些敏感信息,比如数据源的url、用户名、密码....这些信息一旦被暴露那么整个数据库都将会被泄漏,那么如何将这些配置隐藏呢?今天介绍一种方案,让你在无感知的情况下实现配置文件的加密、解密。利用一款开源插件:jasyptspringboot。项目地址如下:https:github.comulisesbocchiojasyptspringboot使用方法很简单,整合SpringBoot只需要添加一个starter。1.添加依赖<dependency>...
2022-07-15 18:01:34 2152浏览 0点赞 0回复 0收藏
上篇介绍了ShardingJDBC的本地事务在网络、硬件故障下是无法保证分布式事务。ShardingJDBC目前还整合其他分布式事务模式来解决事务问题,今天就来介绍一下两阶段事务XA是如何解决分布式事务什么是XA规范XA规范是XOpen组织定义的分布式事务处理(DTP,DistributedTransactionProcessing)标准。XA规范描述了全局的事务管理器与局部的资源管理器之间的接口。XA规范的目的是允许多个资源(如数据库,应用服务器,消息队列等)在同...
2022-07-15 18:01:30 2056浏览 0点赞 0回复 0收藏
SpringSecurityOAuth2的授权码模式一直是个难点,如果你对底层的原理不太理解的话很难去定位到其中的问题今天这篇文章就针对这个问题做个解答,分为如下三个部分:授权码模式的登录页面重定制授权码模式的授权页面重定制授权码模式的异常页面重定制授权码模式的登录页面重定制下面就以《SpringCloudAlibaba项目实战》的实战项目来展示一下默认的登录页面什么熊样,如下图:是不是有点丑?实际开发中肯定是要根据自己的系统定制...
2022-07-15 18:01:22 2570浏览 0点赞 0回复 0收藏
今天来聊一聊springsecurity中的一种经典认证模式HttpBasic,在5.x版本之前作为SpringSecurity默认认证模式,但是在5.x版本中被放弃了,默认的是formlogin认证模式HttpBasic模式的应用场景HttpBasic登录验证模式是SpringSecurity实现登录验证最简单的一种方式,也可以说是最简陋的一种方式。为什么是最简陋的?这种模式用来糊弄普通用户可以,但是稍微懂点技术的用户分分钟就可以将其破解,因为底层并未做任何的安全的设置,仅...
2022-07-15 18:01:14 1795浏览 0点赞 0回复 0收藏