私は現在、次のようなserver.xml構成を持っています
<Resource auth="Container"
description="DB Connection"
driverClass="oracle.jdbc.driver.OracleDriver"
maxPoolSize="40"
minPoolSize="2"
aquireIncrement="1"
name="jdbc/FOOBAR"
user="foo"
password="bar"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="path:to:db:port:db" />
明らかな理由で、server.xmlファイルでユーザー名/パスワードをクリアテキストにすることを許可しないようにする必要があります。
オンラインで少し読んで、Java用のTomcatデータベースパスワードを保護する方法を 見つけ ました。TomcatServer.xmlや他の多くのページでJNDIのユーザー名とパスワードを暗号化します。しかし、私は少し立ち往生しています。
私は最初にextendindBasicDataSourceFactoryを調べましたが、c3p0 CombinedPooledDataSourceを使用しているため、発生しないようです。次に、PooledDataSource、Serializable、およびReferenceableを実装してc3p0データソースラッパーを作成することを検討しましたが、それも機能しませんでした。
auth = "Container" => auth = "Application"を作成することで、認証をサーバー側に移動できることを読みました。ただし、Hibernateを使用して残りの部分を実装する方法がわかりません。
どんな助けでも素晴らしいでしょう。