欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于Spring的property文件的密碼加密方法與流程

文檔序號(hào):12068173閱讀:746來源:國知局

本發(fā)明涉及計(jì)算機(jī)軟件應(yīng)用技術(shù)領(lǐng)域,具體涉及一種基于Spring的property文件的密碼加密方法。



背景技術(shù):

Spring是一個(gè)開源框架,Spring是于2003 年興起的一個(gè)輕量級(jí)的Java 開發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開發(fā)提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring的核心是控制反轉(zhuǎn)(IoC)和面向切面(AOP)。簡(jiǎn)單來說,Spring是一個(gè)分層的JavaSE/EEfull-stack(一站式) 輕量級(jí)開源框架。

property文件是一個(gè)以.properties為后綴的文件,其作用是保存應(yīng)用運(yùn)行時(shí)的配置變量。對(duì)于一些密碼類型的配置如果不進(jìn)行加密,如數(shù)據(jù)庫密碼,可能會(huì)造成密碼泄露等問題?,F(xiàn)有技術(shù)中通常采用兩次base64進(jìn)行加密。

Spring本身提供PropertyPlaceholderConfigurer類讀取property文件,其中該類中的convertProperty方法為將給定的property鍵轉(zhuǎn)換為相應(yīng)的值。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題是:本發(fā)明針對(duì)以上問題,為web項(xiàng)目的property文件加密,防止密碼暴露在生產(chǎn)環(huán)境,提供一種基于Spring的property文件的密碼加密方法,加密方法可自行定義,本發(fā)明的重點(diǎn)是提出一種簡(jiǎn)單有效的可統(tǒng)一密碼加密的一個(gè)類,而不需其他地方修改。

本發(fā)明所采用的技術(shù)方案為:

一種基于Spring的property文件的密碼加密方法,所述方法通過在Spring中新寫一個(gè)類,繼承spring的PropertyPlaceholderConfigurer類,并覆蓋PropertyPlaceholderConfigurer類的convertProperty方法,然后將property文件注入到新寫的類中,從而實(shí)現(xiàn)密碼加密。

將property配置文件注入到新寫的類的實(shí)現(xiàn)過程如下:在applicationContext.xml文件中,將property配置文件路徑寫明到新寫的類的locations(位置)屬性中。

所述applicationContext.xml是進(jìn)行spring管理配置的xml文件。

所述方法實(shí)現(xiàn)流程如下:

1)繼承spring原生的PropertyPlaceholderConfigurer類,進(jìn)行重寫;

2)重寫convertProperty方法,按照property文件的加密屬性名單中propertyName進(jìn)行區(qū)分密碼和非密碼類型,進(jìn)而對(duì)密碼類型進(jìn)行解密。

所述property文件是保存應(yīng)用環(huán)境配置的內(nèi)容為鍵值對(duì)的文件。

所述密碼和非密碼類型判斷過程如下:

通過判斷propertyName配置是否為password后綴,若是,返回true,若否,返回false。

所述方法通過在property文件中定義受環(huán)境影響易變的變量,可以隨部署環(huán)境變化而進(jìn)行相應(yīng)修改。

易受環(huán)境影響的變量就是一些應(yīng)用依賴的外部變量,比如數(shù)據(jù)庫地址,數(shù)據(jù)庫密碼等,需要放置在配置文件中,而不能放在代碼中,可以隨部署環(huán)境進(jìn)行修改。

本發(fā)明的有益效果為:

本發(fā)明方法適用Spring構(gòu)建的web項(xiàng)目,避免密碼泄露,能夠通過簡(jiǎn)單有效的可統(tǒng)一密碼加密的一個(gè)類,而不需其他地方修改。

附圖說明

圖1為本發(fā)明密碼類型判斷流程圖。

具體實(shí)施方式

根據(jù)說明書附圖,結(jié)合具體實(shí)施方式對(duì)本發(fā)明進(jìn)一步說明:

實(shí)施例1:

一種基于Spring的property文件的密碼加密方法,所述方法通過在Spring中新寫一個(gè)類,繼承spring的PropertyPlaceholderConfigurer類,并覆蓋PropertyPlaceholderConfigurer類的convertProperty方法,然后將property文件注入到新寫的類中,從而實(shí)現(xiàn)密碼加密。

實(shí)施例2

在實(shí)施例1的基礎(chǔ),本實(shí)施例將property配置文件注入到新寫的類的實(shí)現(xiàn)過程如下:在applicationContext.xml文件中,將property配置文件路徑寫明到新寫的類的locations(位置)屬性中。

實(shí)施例3

在實(shí)施例2的基礎(chǔ),本實(shí)施例所述applicationContext.xml是進(jìn)行spring管理配置的xml文件。

實(shí)施例4

如圖1所示,在實(shí)施例1、2或3的基礎(chǔ),本實(shí)施例所述方法實(shí)現(xiàn)流程如下:

1)繼承spring原生的PropertyPlaceholderConfigurer類,進(jìn)行重寫;

2)重寫convertProperty方法,按照property文件的加密屬性名單中propertyName進(jìn)行區(qū)分密碼和非密碼類型,進(jìn)而對(duì)密碼類型進(jìn)行解密。

相關(guān)代碼如下:

//繼承spring原生的PropertyPlaceholderConfigurer類,進(jìn)行重寫

public class EncryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {

@Override

//重寫convertProperty方法,按照propertyName進(jìn)行區(qū)分密碼和非密碼類型,進(jìn)而對(duì)密碼類型進(jìn)行解密

protected String convertProperty(String propertyName, String propertyValue) {

//判斷配置是否為密碼類型,若是進(jìn)行解密,若否直接返回

if (isEncryptProp(propertyName)) {

//按照選定的加密方法進(jìn)行密碼解密

String decryptValue = CryptoUtils.getDecryptString(propertyValue);

return decryptValue;

} else {

return propertyValue;

}

}

實(shí)施例5

在實(shí)施例4的基礎(chǔ),本實(shí)施例所述property文件是保存應(yīng)用環(huán)境配置的內(nèi)容為鍵值對(duì)的文件。

實(shí)施例6

在實(shí)施例5的基礎(chǔ),本實(shí)施例所述密碼和非密碼類型判斷過程如下:

通過判斷propertyName配置是否為password后綴,若是,返回true,若否,返回false。

相關(guān)代碼如下:

//判斷配置是否為密碼類型

private boolean isEncryptProp(String propertyName) {

//判斷配置是否為password后綴,若是返回true,若否返回false

if (propertyName.endsWith("password")) {

return true;

}

return false;

}

}

實(shí)施例7

在實(shí)施例6的基礎(chǔ),本實(shí)施例所述方法通過在property文件中定義受環(huán)境影響易變的變量,可以隨部署環(huán)境變化而進(jìn)行相應(yīng)修改。

易受環(huán)境影響的變量就是一些應(yīng)用依賴的外部變量,比如數(shù)據(jù)庫地址,數(shù)據(jù)庫密碼等,需要放置在配置文件中,而不能放在代碼中,可以隨部署環(huán)境進(jìn)行修改。

property配置文件示例配置如下:

實(shí)施方式僅用于說明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。

</bean>

</property>

</list>

<value>classpath*:/application.properties</value>

<list>

<property name="locations">

<bean class="com.inspur.cloudframework.spring.beans.factory.config.EncryptPropertyPlaceholderConfigurer">

<-- 定義受環(huán)境影響易變的變量 -->

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
凉城县| 安吉县| 龙江县| 宜丰县| 十堰市| 金湖县| 溆浦县| 郴州市| 太谷县| 长子县| 庄河市| 武安市| 平武县| 荥阳市| 宣城市| 昔阳县| 建瓯市| 陆良县| 民和| 张掖市| 吉水县| 丰都县| 康平县| 虎林市| 五原县| 巴马| 杭锦旗| 辉南县| 保亭| 祁连县| 岫岩| 达拉特旗| 兴宁市| 林口县| 拉萨市| 瓦房店市| 五大连池市| 瑞昌市| 河北区| 隆尧县| 桐柏县|