2015年6月23日火曜日

PL/SQLでX-FORWARDED-FORヘッダを読む

Oracle ASの前段にリバースプロキシを入れる予定があったので調査。

HTTPヘッダのRemote-Addrは以下のようにすれば取得できるが、リバースプロキシ環境ではプロキシサーバのIPが入ってしまう。

owa_util.get_cgi_env('REMOTE-ADDR')

試しに以下のようになってみたが、空だった。ログ上はX-Forwarded-Forがヘッダになるのに。

owa_util.get_cgi_env('X-FORWARDED-FOR')

Oracleコミュニティのサイトを調べてみると、dads.confの該当するLocationディレクトリブに以下を追加すれば良いらしい。

PlsqlCGIEnvironmentList X-FORWARDED-FOR

うちの環境ではこれで取得できた。