`

Spring 中的.properties 属性(jdbc.password)加密

 
阅读更多

 

 

1、复写processProperties方法实现 

 

package com.*.*;

import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; 

public class PropertyPlaceholderConfigurerTest extends PropertyPlaceholderConfigurer {
	  protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) 
              throws BeansException { 
		  String password = props.getProperty("jdbc.password"); 
		  String username = props.getProperty("jdbc.username"); 
		  try {
		  if (password != null) { 
              //解密jdbc.password属性值,并重新设置 
		//Crypt.decrypt:自己编写的对应的解密方法(本文采用aes算法,aes网上有很多就不写出来了)
		props.setProperty("jdbc.password", Crypt.decrypt(password));
		  		} 
		  if (username != null) { 
	        props.setProperty("jdbc.username", Crypt.decrypt(username));
		  } 
		  super.processProperties(beanFactory, props);
		  } catch (Exception e) {
				e.printStackTrace();
			} 
	  }
}

  

<!-- 不加密时候使用使用spring自带的 -->


2、xml配置

<!-- 不加密时候使用使用spring自带的 -->

<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="locations">
     <list>
 <value>classpath:jdbc.properties</value>   <value>classpath:roles.properties</value>
     </list>
  </property>
</bean>

 

<!-- 加密时候使用自己复写过的 -->

<bean id="propertyConfigurer"
class="com.*.*.PropertyPlaceholderConfigurerTest">
  <property name="locations">
    <list>
 <value>classpath:jdbc.properties</value>
    <value>classpath:roles.properties</value>
    </list>
  </property>
</bean>

 

3、原文

jdbc.username=F4B2DEB6F8FA201C5783A959CE1C3180
jdbc.password=F4B2DEB6F8FA201C5783A959CE1C3180

 

分享到:
评论

相关推荐

    jdbc.properties

    3. **自动加载配置**:在Spring框架中,可以通过`@PropertySource`注解自动加载`jdbc.properties`,并将属性注入到bean中,简化代码。 4. **异常处理**:在尝试连接数据库时,应该捕获并处理可能抛出的SQLException...

    spring,配置文件从属性文件读取JDBC连接的相关参数

    上述配置完成后,Spring会自动根据`jdbc.properties`中的属性值创建一个`DataSource`实例。这个数据源可以被Spring的其他组件,如`JdbcTemplate`或`JPA`,用来执行SQL查询和操作数据库。 通过这种方式,我们实现了...

    Spring数据库连接等配置加密

    `propertyConfigurer`则告诉Spring使用解密器来处理配置文件中的加密属性。 最后,关于`junfeng`这个文件,它可能是作者在文章中提到的一种特定的加密方式或者一个工具的名称。由于没有具体的文件内容,这里无法给...

    Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现读写分离.docx

    通过本文介绍,我们了解了如何在 Spring Boot 中集成 Sharding-JDBC 来实现数据库的读写分离。这种方式不仅简化了开发流程,还大大提高了系统的可扩展性和可用性。对于处理大规模数据的应用来说,这种方案是非常实用...

    SpringBoot整合Mybatis使用Druid数据库连接池

    在 Spring Boot 项目中,整合 Mybatis 只需要添加相应的依赖项就可以。首先,添加 Mybatis 的依赖项: ``` &lt;groupId&gt;org.mybatis.spring.boot &lt;artifactId&gt;mybatis-spring-boot-starter &lt;version&gt;1.1.1 ``` ...

    spring读取properties

    在Spring框架中,读取和使用Properties文件是一种常见的配置方式,尤其当涉及到数据库连接、环境变量等需要在运行时动态加载或更改的信息时。本文将深入解析如何在Spring环境中读取Properties文件,包括配置步骤、...

    SpringBoot(七)SpringBoot整合Druid实现数据库密码加密.pdf

    本文将详细介绍如何在Spring Boot项目中整合Druid连接池,并通过非对称加密技术加密数据库密码,从而提高系统的安全性。 #### 二、项目搭建与环境准备 ##### 2.1 新建 Maven 项目 首先,我们需要使用IDEA...

    JDBC用户信息加密方案.docx

    - 使用上一步开发的加密工具类对`jdbc.properties`中的敏感信息进行加密处理。 7. **输出结果** - 验证加密操作是否成功。 8. **修改PROPERTIES文件** - 将加密后的值保存到`jdbc.properties`文件中。 9. **...

    使用jasypt-1.5加密Spring的db属性文件[归类].pdf

    本文将详细介绍如何使用jasypt-1.5对Spring框架中的`db.properties`文件进行加密。 #### 二、jasypt简介 jasypt(Java Simple Yet Powerful Text Encryption Library)是一款开源的、轻量级的文本加密库,它能够为...

    3-7 Spring Boot 集成 Druid 监控数据源.pdf1

    应用的 `application.properties` 或 `application.yml` 文件可以配置 Druid 数据源的相关属性,例如初始化大小、最小连接数、最大连接数,以及连接超时时间等: ```properties # application.properties 示例 ...

    JDBC通过配置文件连接数据库

    例如,使用`application.properties`或`application.yml`(Spring Boot项目中)存储数据库连接信息。这些文件可以包含如URL、用户名、密码、驱动类名等关键参数。 2. **JDBC连接步骤** - 加载数据库驱动:使用`...

    配置文件内容加密jasypt demo

    在Spring Boot中,我们可以利用jasypt来加密配置文件(如application.properties或application.yml)中的敏感数据,确保即使配置文件被泄露,也无法直接获取到原始的明文信息。 首先,我们需要在项目中引入jasypt的...

    nacos 链接postgregreSql版本nacos-pgsql

    在原生的Nacos中,数据库连接配置位于`conf/application.properties`或`conf/bootstrap.properties`文件中,通常会看到像`spring.datasource.platform=mysql`这样的配置,这指示Nacos使用MySQL数据源。为了连接到...

    SSH笔记-通过property-placeholder使用外部属性文件

    本笔记将专注于Spring框架中的一个关键特性——通过`property-placeholder`使用外部属性文件,这在实际项目中非常常见,能够有效地实现配置的解耦和管理。 首先,让我们理解`property-placeholder`的概念。在Spring...

    集成druid实现数据库密码加密功能.zip

    例如,如果你使用Spring框架,可以在`application.properties`或`application.yml`中配置如下: ```properties # application.properties 示例 spring.datasource.druid.url=jdbc:mysql://localhost:3306/mydb?...

    cas数据库连接所需jar包.zip

    可以使用环境变量、密钥存储服务(如Spring Cloud Config Server)或属性加密机制来保护这些信息。 7. **测试连接**:在部署后,务必测试CAS能否成功连接到数据库,确保认证流程正常运行。可以使用CAS提供的管理...

    SpringBoot 集成 Jasypt 对数据库加密以及踩坑

    在本文中,我们将介绍如何在 SpringBoot 项目中集成 Jasypt 对数据库进行加密,并解决在使用 Jasypt 过程中遇到的常见问题。 在开始之前,需要首先添加 Jasypt 的依赖项到 pom.xml 文件中: ```xml &lt;groupId&gt;...

    在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通

    在IntelliJ IDEA中通过Spring Boot集成达梦数据库是一个现代应用程序开发的重要步骤,尤其是在Java生态中。本教程将深入探讨如何实现这一目标,从基础设置到高级应用,帮助你从入门到精通。达梦数据库是一款由中国...

    Spring数据源及配置文件数据加密实现过程详解

    在Spring应用程序中,数据源配置信息通常存储在.properties文件中,例如jdbc.properties文件。这些配置信息包括数据库连接URL、用户名、密码等敏感信息。如果这些信息以明文形式存储,那么任何拥有服务器登录权限的...

    JAVA连接字符串到配置文件

    在实际应用中,你可能还需要对这些连接参数进行安全处理,例如,避免明文存储敏感信息如密码,可以考虑使用环境变量或者加密方式来保护数据。 此外,对于大型项目,推荐使用如Spring框架来管理配置,它提供了更高级...

Global site tag (gtag.js) - Google Analytics