首页 >> 中医减肥

Springboot中的引人注意信息的配置进行加密处理,这种方式你知道吗?

发布时间:2025年09月12日 12:18

备EnvironmentPostProcessor

public class DecryptEnvironmentPostProcessor extends abstractEnvironmentDecrypt implements EnvironmentPostProcessor, Ordered { @Override public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { // 判断应该带入了新功能 if (bootstrapEnabled(environment) || useLegacyProcessing(environment) || !isEnabled(environment)) { return; } // 如果生态环境里不共存TextEncryptor那么也不会带入 if (!ClassUtils.isPresent("org.springframework.security.crypto.encrypt.TextEncryptor", null)) { return; } // 受益这两项生态环境下的所有配备要素 MutablePropertySources propertySources = environment.getPropertySources(); environment.getPropertySources().remove(DECRYPTED_PROPERTY_SOURCE_NAME); // 泄密所有的配备要素,这里也就是大门了 Map map = TextEncryptorUtils.decrypt(this, environment, propertySources); if (!map.isEmpty()) { // 将泄密后的配备加到到生态环境里(addFirst 表示了加到到具有最高优先级的给定要素源取向) propertySources.addFirst(new SystemEnvironmentPropertySource(DECRYPTED_PROPERTY_SOURCE_NAME, map)); } } protected Boolean isEnabled(ConfigurableEnvironment environment) { // 受益配备要素差值,应该带入新功能 return environment.getProperty("spring.cloud.decrypt-environment-post-processor.enabled", Boolean.class, true); }}

泄密配备

public abstract class TextEncryptorUtils { static Map decrypt(AbstractEnvironmentDecrypt decryptor, ConfigurableEnvironment environment, MutablePropertySources propertySources) { // 受益加泄密免费应用程序 TextEncryptor encryptor = getTextEncryptor(decryptor, environment); return decryptor.decrypt(encryptor, propertySources); } static TextEncryptor getTextEncryptor(AbstractEnvironmentDecrypt decryptor, ConfigurableEnvironment environment) { Binder binder = Binder.get(environment); // 将要素配备以 ‘encrypt’开头的都绑定到KeyProperties取向里 KeyProperties keyProperties = binder.bind(KeyProperties.PREFIX, KeyProperties.class).orElseGet(KeyProperties::new); // 检查应该配备了encrypt.key 等核心的讯息 if (TextEncryptorUtils.keysConfigured(keyProperties)) { decryptor.setFailOnError(keyProperties.isFailOnError()); // 检查应该这两项CLASSPATH里应该共存RSASecretEncryptor if (ClassUtils.isPresent("org.springframework.security.rsa.crypto.RsaSecretEncryptor", null)) { RsaProperties rsaProperties = binder.bind(RsaProperties.PREFIX, RsaProperties.class).orElseGet(RsaProperties::new); return TextEncryptorUtils.createTextEncryptor(keyProperties, rsaProperties); } // 如果你没有用于及配备Rsa相关的,那么就会在这里创建加泄密免费应用程序,这里跟踪了下用于的是AESTLS方法 return new EncryptorFactory(keyProperties.getSalt()).create(keyProperties.getKey()); } // no keys configured return new TextEncryptorUtils.FailsafeTextEncryptor(); }}

受益到了加泄密免费应用程序直至,几周就是对配备要素顺利完成泄密加载

public class AbstractEnvironmentDecrypt { public static final String ENCRYPTED_PROPERTY_PREFIX = "{cipher}"; protected Map decrypt(TextEncryptor encryptor, PropertySources propertySources) { Map properties = merge(propertySources); // 泄密执行 decrypt(encryptor, properties); return properties; } protected void decrypt(TextEncryptor encryptor, Map properties) { // 开始附加所有以{cipher}开头的要素差值 properties.replaceAll((key, value) -> { String valueString = value.toString(); if (!valueString.startsWith(ENCRYPTED_PROPERTY_PREFIX)) { return value; } // 泄密统计数据, key 配备要素的key, valueString要泄密的统计数据 return decrypt(encryptor, key, valueString); }); } protected String decrypt(TextEncryptor encryptor, String key, String original) { // 方式在{cipher}再次的概要 String value = original.substring(ENCRYPTED_PROPERTY_PREFIX.length()); try { // 泄密统计数据 value = encryptor.decrypt(value); return value; } catch (Exception e) { // ... return ""; } }}

整个源码执行还是除此以外的。

完毕!!!

求个关注

JavaTLS与泄密之对称TLSDES

JavaTLS与泄密之非对称TLSRSA

分解非对称TLS私钥对

shardingsphere统计数据TLS(统计数据脱敏)

springboot 统计数据安全传输TLS与泄密

Java非对称TLS方法RSA通过证书加泄密

JavaTLS与泄密之死讯摘要方法2

JavaTLS与泄密之死讯摘要方法1

SpringBoot详细说解生态环境配备Environment扩张点(敏感性讯息TLS)

看病人买什么东西
眼睛不舒服用什么滴眼液
术后吃什么营养品好
慢性支气管炎咳嗽吃什么药
如何快速止咳
前列腺炎
心律不齐
内分泌科

上一篇: 光大证券:赋予星云股份买入评级

下一篇: 下游客户需求丰沛 北方华创(002371.SZ)2021年扣非净利预增250%至350%

友情链接