一种基于Spring的property文件的密码加密方法技术

技术编号:15441777 阅读:132 留言:0更新日期:2017-05-26 06:49
本发明专利技术公开了一种基于Spring的property文件的密码加密方法,所述方法通过在Spring中新写一个类,继承spring的PropertyPlaceholderConfigurer类,并覆盖PropertyPlaceholderConfigurer类的convertProperty方法,然后将property文件注入到新写的类中,从而实现密码加密。本发明专利技术方法适用Spring构建的web项目,避免密码泄露,能够通过简单有效的可统一密码加密的一个类,而不需其他地方修改。

Cipher encryption method for property file based on Spring

The invention discloses an encryption method of Spring property file password based on the method by writing a new class in Spring, successor to the spring PropertyPlaceholderConfigurer class, convertProperty method and coverage of the PropertyPlaceholderConfigurer class, then the property file into the new writing class, in order to achieve encryption. The method of the invention is suitable for the web project constructed by Spring, and avoids the leakage of passwords, and can be modified by simple and effective one class which can be encrypted by a unified cipher without modifying other places.

【技术实现步骤摘要】
一种基于Spring的property文件的密码加密方法
本专利技术涉及计算机软件应用
,具体涉及一种基于Spring的property文件的密码加密方法。
技术介绍
Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。property文件是一个以.properties为后缀的文件,其作用是保存应用运行时的配置变量。对于一些密码类型的配置如果不进行加密,如数据库密码,可能会造成密码泄露等问题。现有技术中通常采用两次base64进行加密。Spring本身提供PropertyPlaceholderConfigurer类读取property文件,其中该类中的convertProperty方法为将给定的property键转换为相应的值。
技术实现思路
本专利技术要解决的技术问题是:本专利技术针对以上问题,为web项目的property文件加密,防止密码暴露在生产环境,提供一种基于Spring的property文件的密码加密方法,加密方法可自行定义,本专利技术的重点是提出一种简单有效的可统一密码加密的一个类,而不需其他地方修改。本专利技术所采用的技术方案为:一种基于Spring的property文件的密码加密方法,所述方法通过在Spring中新写一个类,继承spring的PropertyPlaceholderConfigurer类,并覆盖PropertyPlaceholderConfigurer类的convertProperty方法,然后将property文件注入到新写的类中,从而实现密码加密。将property配置文件注入到新写的类的实现过程如下:在applicationContext.xml文件中,将property配置文件路径写明到新写的类的locations(位置)属性中。所述applicationContext.xml是进行spring管理配置的xml文件。所述方法实现流程如下:1)继承spring原生的PropertyPlaceholderConfigurer类,进行重写;2)重写convertProperty方法,按照property文件的加密属性名单中propertyName进行区分密码和非密码类型,进而对密码类型进行解密。所述property文件是保存应用环境配置的内容为键值对的文件。所述密码和非密码类型判断过程如下:通过判断propertyName配置是否为password后缀,若是,返回true,若否,返回false。所述方法通过在property文件中定义受环境影响易变的变量,可以随部署环境变化而进行相应修改。易受环境影响的变量就是一些应用依赖的外部变量,比如数据库地址,数据库密码等,需要放置在配置文件中,而不能放在代码中,可以随部署环境进行修改。本专利技术的有益效果为:本专利技术方法适用Spring构建的web项目,避免密码泄露,能够通过简单有效的可统一密码加密的一个类,而不需其他地方修改。附图说明图1为本专利技术密码类型判断流程图。具体实施方式根据说明书附图,结合具体实施方式对本专利技术进一步说明:实施例1:一种基于Spring的property文件的密码加密方法,所述方法通过在Spring中新写一个类,继承spring的PropertyPlaceholderConfigurer类,并覆盖PropertyPlaceholderConfigurer类的convertProperty方法,然后将property文件注入到新写的类中,从而实现密码加密。实施例2在实施例1的基础,本实施例将property配置文件注入到新写的类的实现过程如下:在applicationContext.xml文件中,将property配置文件路径写明到新写的类的locations(位置)属性中。实施例3在实施例2的基础,本实施例所述applicationContext.xml是进行spring管理配置的xml文件。实施例4如图1所示,在实施例1、2或3的基础,本实施例所述方法实现流程如下:1)继承spring原生的PropertyPlaceholderConfigurer类,进行重写;2)重写convertProperty方法,按照property文件的加密属性名单中propertyName进行区分密码和非密码类型,进而对密码类型进行解密。相关代码如下://继承spring原生的PropertyPlaceholderConfigurer类,进行重写publicclassEncryptPropertyPlaceholderConfigurerextendsPropertyPlaceholderConfigurer{@Override//重写convertProperty方法,按照propertyName进行区分密码和非密码类型,进而对密码类型进行解密protectedStringconvertProperty(StringpropertyName,StringpropertyValue){//判断配置是否为密码类型,若是进行解密,若否直接返回if(isEncryptProp(propertyName)){//按照选定的加密方法进行密码解密StringdecryptValue=CryptoUtils.getDecryptString(propertyValue);returndecryptValue;}else{returnpropertyValue;}}实施例5在实施例4的基础,本实施例所述property文件是保存应用环境配置的内容为键值对的文件。实施例6在实施例5的基础,本实施例所述密码和非密码类型判断过程如下:通过判断propertyName配置是否为password后缀,若是,返回true,若否,返回false。相关代码如下://判断配置是否为密码类型privatebooleanisEncryptProp(StringpropertyName){//判断配置是否为password后缀,若是返回true,若否返回falseif(propertyName.endsWith("password")){returntrue;}returnfalse;}}实施例7在实施例6的基础,本实施例所述方法通过在property文件中定义受环境影响易变的变量,可以随部署环境变化而进行相应修改。易受环境影响的变量就是一些应用依赖的外部变量,比如数据库地址,数据库密本文档来自技高网...
一种基于Spring的property文件的密码加密方法

【技术保护点】
一种基于Spring的property文件的密码加密方法,其特征在于,所述方法通过在Spring中新写一个类,继承spring的PropertyPlaceholderConfigurer类,并覆盖PropertyPlaceholderConfigurer类的convertProperty方法,然后将property文件注入到新写的类中,从而实现密码加密。

【技术特征摘要】
1.一种基于Spring的property文件的密码加密方法,其特征在于,所述方法通过在Spring中新写一个类,继承spring的PropertyPlaceholderConfigurer类,并覆盖PropertyPlaceholderConfigurer类的convertProperty方法,然后将property文件注入到新写的类中,从而实现密码加密。2.根据权利要求1所述的一种基于Spring的property文件的密码加密方法,其特征在于,将property配置文件注入到新写的类的实现过程如下:在applicationContext.xml文件中,将property配置文件路径写明到新写的类的locations属性中。3.根据权利要求2所述的一种基于Spring的property文件的密码加密方法,其特征在于,所述applicationContext.xml是进行spring管理配置的xml文件。4.根据权利要求1、2或3所述的一种基于Spring的property文...

【专利技术属性】
技术研发人员:宁升唐晓东
申请(专利权)人:广东浪潮大数据研究有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1