Jasypt & Spring 3.1

Jasypt & Spring 3.1

最近這幾月一直在忙著寫Java,雖然曾經接觸過一陣子,不過是維護性質的專案,所以其實沒有了解多少。這次打算一口氣學多一點,雖然公司都沒人用Spring,想說反正我會ASP.NET MVC,邏輯上應該差不了多少,就自找麻煩了用了SpringMVC,不得不說只用設定檔可以做完一堆事真的超方便,可是一開始完全不懂要怎麼設,網路上的範例大多都是非常簡單的,所以常常設了一堆結果都不會動,又看不懂問題在哪Q_Q。

 

好歹總算會動了……XD

 

昨天為了加密連線字串找了一下,既然.NET可以直接用工具加密設定檔,我猜Java應該也有同樣的東西,結果就找到了Jasypt。

 

設定方式記錄如下:

官方網站:http://www.jasypt.org/

下載的安裝內有包含加解密工具,先利用工具取得加密字串;加密的演算法可以自己指定。input 是要加密的密碼,password是用來運算加密的值。

SNAGHTML110b37b

網站需要的jar 檔:jasypt-1.9.0.jar、jasypt-spring31-1.9.0.jar。 (因為我是用Spring 3.1)

Spring applicationContext設定:

	class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
   <property name="algorithm" value="PBEWithMD5AndDES" />
   <property name="password" value="salt" />
</bean>

<bean id="configurationEncryptor"
	class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
		<property name="config" ref="environmentVariablesConfiguration" />
	</bean>
	
	<bean id="propertyConfigurer" class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
	<constructor-arg ref="configurationEncryptor" />
	<property name="locations">
	<list>
		<value>/WEB-INF/classes/db.properties</value>
	</list>
	</property>
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />

</bean>

另外db.properties檔案內容(置於classes目錄下)

jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=DB

jdbc.username=db_user

jdbc.password=ENC(亂碼)

 

用ENC括號包起來的字,就表示經過加密處理,需要解密。

 

以上。其實也蠻簡單的~

 

Dotblogs 的標籤: ,,