環境:Java, SpringBoot, OracleDB, REDHAT
DBの接続情報はapplication.env.yamlに記述できるが、これはアプリケーション資源であり、Gitで管理されてしまうので、情報セキュリティ観点から好ましくない。
そのため、サーバー側に接続情報を記載したい。
接続情報はどのファイルに記載する?
アプリケーションサーバーのTomcatの以下のいずれかのファイルに記述できる。
- [Tomcat のパス]/[appName]/conf/context.xml
- [Tomcat のパス]/[appName]/conf/server.xml
- [Tomcat のパス]/[appName]/conf/web.xml
- [Tomcat のパス]/[appName]/conf/Catalina/localhost/[appName].xml
違いは『Tomcat 備忘録』を参照。基本的には、以下で良い。
- 1つのTomcatに1つのアプリケーションを起動する場合:context.xml
- 1つのTomcatに複数アプリケーションを起動する場合:[appName].xml
接続情報の記載の仕方
以下のように記述し、JNDI でアクセスできるようにする。
JNDI については『サーバーで定義した変数を Java アプリケーションで読み込む』を参照。
<Context>
<Resource
name="jdbc/xxxauth"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@[ip]:[port]/xxx"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
username="xxx"
password="XXX"
maxActive="100"
maxIdle="100"
maxWait="-1"
validationQuery="select 1 from dual"
/>
</Context>

コメント