Jasypt & Spring 3.1
最近這幾月一直在忙著寫Java,雖然曾經接觸過一陣子,不過是維護性質的專案,所以其實沒有了解多少。這次打算一口氣學多一點,雖然公司都沒人用Spring,想說反正我會ASP.NET MVC,邏輯上應該差不了多少,就自找麻煩了用了SpringMVC,不得不說只用設定檔可以做完一堆事真的超方便,可是一開始完全不懂要怎麼設,網路上的範例大多都是非常簡單的,所以常常設了一堆結果都不會動,又看不懂問題在哪Q_Q。
好歹總算會動了……XD
昨天為了加密連線字串找了一下,既然.NET可以直接用工具加密設定檔,我猜Java應該也有同樣的東西,結果就找到了Jasypt。
設定方式記錄如下:
下載的安裝內有包含加解密工具,先利用工具取得加密字串;加密的演算法可以自己指定。input 是要加密的密碼,password是用來運算加密的值。
網站需要的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括號包起來的字,就表示經過加密處理,需要解密。
以上。其實也蠻簡單的~