DBの接続情報をサーバー側で記載する

環境: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>

 

コメント

タイトルとURLをコピーしました