2010-02-07 80 views
2

我在tomcat服務器context.xml中設置了一個連接池(由幾個webapps使用的連接似乎是最適合它的地方)。我可以從連接池中設置JDBC連接的密碼嗎? (Tomcat 5.5.17)

但是,我不喜歡在文件中硬編碼密碼。有沒有辦法讓我從別處檢索密碼(安全密碼存儲),並在集中連接建立時務實地進行設置?

謝謝

瑞安

+1

看看http://www.owasp.org/index.php/Securing_tomcat – 2010-02-07 23:32:19

回答

3

我相信你正在尋找Custom Resource Factory,你可以編碼你的工廠創建javax.sql.DataSource對象或基於DBCP(或這樣的)連接池門面對象,和有你的自定義代碼來獲取和設置連接的用戶名/密碼。

請注意,如果您正在尋找額外的安全性 - 務實的方式是使用文件系統安全來保護您的context.xml文件,添加額外的層(例如您的資源工廠的自定義實現),將不會使系統更安全,因爲您仍然需要在某處配置的安全密碼存儲區的密碼 - 最終會導致雞或蛋問題。

0

你可能想實現單點登錄的Web應用程序(例如使用JOSSO)。請注意,這可能是一個小項目的重大開銷,但這應該可以解決您的問題。除此解決方案外,還有供應商特定的應用程序,如Oracle的Secure External Password Store。另一個依賴於平臺的示例:您可以配置PostgreSQL pg_hba.conf。嘗試以下認證選項:

  • 使用SSL客戶端 證書進行身份驗證。
  • 使用可插入的身份驗證 身份驗證模塊(PAM) 由運行 系統提供的服務。
  • 使用LDAP 服務器進行身份驗證。
  • ...等等

編輯:在我們使用3DES加密密碼的項目之一。是的,關鍵是硬編碼在應用程序:)

+0

的最後部分非常感謝您的回覆,我很欣賞您花時間回答。然而,我試圖堅持使用標準的tomcat DBCP,並且簡單地'抽取'我的密碼檢索,所以我將下面的答案標記爲已解決的解決方案。謝謝。瑞安 – Ryan 2010-02-07 23:07:09