自定义ShardingSphere的加解密器

默认的Sharding Sphere 支持AES和MD5两种加密器。有些时候可能需要自定义使用自己的加解密算法,如AES的具体实现不一样等。网上公开的并没有直接的指引,通过部分源码的阅读,找到了可行的方式。需要三步:

1.实现自定义解密器 (实现ShardingEncryptor 接口)

public class TestShardingEncryptor implements ShardingEncryptor {
        private Properties properties = new Properties();

         @Override
         public String getType() {
                return "TEST";
          }


          @Override
         public void init() {

         }

         @Override
         public String encrypt(final Object plaintext) {
             return "TEST-"+String.valueOf(plaintext);
         }

         @Override
        public Object decrypt(final String ciphertext) {
             return ciphertext.replaceAll("TEST-","");
         }
}

其中 getType 返回的字符串(本例为”TEST”)即为本加解密器的类型(后续使用的时候会使用)

2.创建org.apache.shardingsphere.spi.encrypt.ShardingEncryptor 文件

需要创建一个文件名为 org.apache.shardingsphere.spi.encrypt.ShardingEncryptor 放入resources路径下的 /META-INF/services

自定义ShardingSphere的加解密器

文件的内容就是类名全称,如:

com.yourcompany.TestShardingEncryptor

3.配置使用此自定义类

Java配置模式:

如果未使用Spring Boot,需要显示用代码配置

EncryptorRuleConfiguration encryptorConfig = new EncryptorRuleConfiguration("TEST", props);

Spring Boot配置模式:

如果使用的是Spring Boot配置模式,则需要如下配置

spring.shardingsphere.encrypt.encryptors.my_encryptor.type=TEST

原文 

https://Jaskey.github.io/blog/2020/04/29/user-defined-shardingsphere-encryptor/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 自定义ShardingSphere的加解密器

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址