【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

WebLogic Server を利用して Web アプリを公開することができますが、インターネット上に Web アプリを公開する場合、セキュリティが問題になります。

今回は、Apache 2.4 の BASIC 認証を利用して WebLogic のリソースを公開する手順について解説します。

全体の作業の流れ

  • 最新の「Apache 2.4」をインストールする
  • Apache HTTP Server プラグインをインストールする
  • Apache側のBASIC認証用のアカウントとパスワードを作成する
  • WebLogic Server にサンプル Web アプリをデプロイする
  • weblogic.xml でセキュリティ・ロールの設定をする
  • WebLogic Server のセキュリティ・レルムのユーザーを設定する

 

セキュリティ・レルムとは?

  • WebLogic では、セキュリティ・レルムに登録されているアカウント(セキュリティ・ロール)のみがすべてのリソースにアクセス可能
  • デフォルトのセキュリティ・レルムは「myrealm」
  • セキュリティ・レルムに複数のアカウントを登録できる
  • セキュリティ・レルムは「セキュリティ・プロバイダ」「セキュリティ・ロール」「ユーザー」「グループ」「セキュリティ・ポリシー」で構成されている。

 

セキュリティ・ロールとは?

セキュリティ・ロールは「weblogic.xml」で設定します。

「security-role-assignment」要素は、セキュリティ・レルム内のセキュリティ・ロールと、1 つまたは複数のプリンシパル(セキュリティ・レルム内のユーザー/グループ)の間のマッピングをします。

  • セキュリティ・ロール → WebLogic 側のアカウント
  • セキュリティ・レルム → いくつかのアカウントが登録されているデータベースのようなもの

 

WebLogic Server 環境

下記の構成で WebLogic Server 環境を構築します。

  • CentOS 7
  • Java 1.8
  • Apache 2.4
  • WebLogic Server 12c

 

WebLogic セキュリティ設計

今回の環境は、以下のように設計します。

セキュリティは BASIC 認証で「アカウント」「パスワード」が正しい時だけアクセスを許可します。

Apache側設定

BASIC認証

アカウント:test

パスワード:test1234

 

WebLogic側設定

セキュリティ・レルム:デフォルトのセキュリティ・レルム(myrealm)

アカウント:test

パスワード:test1234

 

※ApacheのBASIC認証の「アカウント」と「パスワード」、WebLogicのセキュリティ・レルムの「アカウント」と「パスワード」は一致させる必要があります。

 

 

WebLogic と Apache 構成図

簡単ですが、構成図を作りました。

閲覧者からのリクエストを Apache が受けて WebLogic Server へ転送しています。

実は WebLogic にも HTTP Server 機能はありますが、Apache ほど高性能ではないため、Web Server として Apache を利用しています。

 

サーバーやネットワークの環境も関連しますが、数十人くらいの社内環境なら WebLogic Server だけで問題なく Web アプリは動きます。

【Apache 2.4】【WebLogic 12】Basic認証の設定方法について

 

Apache 2.4 のインストール

最初に yum コマンドで httpd(Apache)をインストールします。

[root@test07 ~]# yum install httpd

 

httpd.service の自動起動の設定をします。

[root@test07 ~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@test07 ~]# systemctl start httpd.service
[root@test07 ~]# systemctl status httpd.service
httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since 水 2017-08-09 22:53:17 JST; 5s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 3822 (httpd)
Status: “Processing requests…”
CGroup: /system.slice/httpd.service
tq3822 /usr/sbin/httpd -DFOREGROUND
tq3824 /usr/sbin/httpd -DFOREGROUND
tq3825 /usr/sbin/httpd -DFOREGROUND
tq3826 /usr/sbin/httpd -DFOREGROUND
tq3827 /usr/sbin/httpd -DFOREGROUND
mq3828 /usr/sbin/httpd -DFOREGROUND

8月 09 22:53:17 test07 systemd[1]: Starting The Apache HTTP Server…
8月 09 22:53:17 test07 httpd[3822]: AH00558: httpd: Could not reliably determine the server’s f…sage
8月 09 22:53:17 test07 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@test07 ~]#

 

WebLogic 用 Apache HTTP Server プラグインのインストール

次にプラグインをインストールします。

WebLogic 用 Apache HTTP Server プラグインとは

Apache HTTP Server プラグインは、Apache HTTP サーバから WebLogic Server クラスタまたはインスタンスへリクエストをプロキシします。

具体的には「mod_weblogic」は、Apache HTTP サーバーの一部で Apache HTTP サーバーから WebLogic Server へのプロキシリスエストを許可します。

 

 

WebLogic 用 Apache HTTP Server プラグインのダウンロード

この「WebLogic用のプラグイン」ですが、正直言ってどこにあるのか非常に分かりにくいです。。

最新の「WebLogic 用 Apache HTTP Server プラグイン」をダウンロードする場合は、以下の手順で見つけてください。

※用語がよく分からないので(用語が分かりにくいため)見つけられないです。

 

1.Oracle Fusion Middleware ページに行く

以下の URL をクリックして Oracle Fusion Middleware のページに行きます。

http://www.oracle.com/technetwork/middleware/fusion-middleware/overview/index.html

 

2.「Web Tier」をクリックする

「Cloud Application Foundation」「Web Tier」のリンクがあるのでクリックします。

※ちなみに「tier」とは「ティア」と読み、「層、段、列」などの意味があります。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

3.「Downloads」タブをクリックする

下図のような「Overview」ページに移動したら「Downloads」タブをクリックします。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

4.ダウンロードをする

「Accept License Agreement」にチェックを入れて、「Oracle WebLogic Server Proxy Plugins 12.2.1.2」をクリックしてプラグインをダウンロードします。

クリックをすると、2017年8月現在では「fmw_12.2.1.2.0_wlsplugins_Disk1_1of1.zip」という ZIP ファイルがダウンロードされます。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

5.ZIP ファイルを解凍する

ダウンロードした ZIP ファイルを解凍します。

今回は、CentOS7(64bit) で Apache 2.4 環境なので「WLSPlugin12.2.1.2.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.2.0.zip」 を解凍します。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

6.プラグインの確認とプラグインのアップロードをする

「Teraterm」の「SSH SCP」を利用して「WLSPlugin12.2.1.2.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.2.0.zip」 をサーバーにアップロードします。

「WLSPlugin12.2.1.2.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.2.0.zip」を unzip コマンドで解凍すると「lib」フォルダができるので、「lib」フォルダへ移動します。

# unzip WLSPlugin12.2.1.2.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.2.0.zip

# cd lib

# ll
合計 63108
-rwxr-x—. 1 root root 52761218 10月 7 2016 libclntsh.so
-rwxr-x—. 1 root root 326469   10月 7 2016 libdms2.so
-rwxr-x—. 1 root root 10262948 10月 7 2016 libnnz11.so
-rwxr-x—. 1 root root 67967    10月 7 2016 libonssys.so
-rwxr-x—. 1 root root 85877    10月 7 2016 libopmnsecure.so
-rwxr-x—. 1 root root 552105   10月 7 2016 mod_wl.so
-rwxr-x—. 1 root root 553043   10月 7 2016 mod_wl_24.so

 

  • mod_wl_24.so → Apache 2.4 用のモジュール
  • mod_wl.so → Apache 2.2 用のモジュール

※今回の環境では「mod_wl.so」モジュールは使用しません。

 

Apache HTTP Server プラグインのインストール

Apache HTTP Server プラグインのモジュール一式をサーバーへアップロードしたらインストールをします。

インストールと言っても、/etc/httpd/modules ディレクトリに移動するだけです。

ll
合計 63108
-rwxr-x—. 1 root root 52761218 10月 7 2016 libclntsh.so
-rwxr-x—. 1 root root 326469   10月 7 2016 libdms2.so
-rwxr-x—. 1 root root 10262948 10月 7 2016 libnnz11.so
-rwxr-x—. 1 root root 67967    10月 7 2016 libonssys.so
-rwxr-x—. 1 root root 85877    10月 7 2016 libopmnsecure.so
-rwxr-x—. 1 root root 552105   10月 7 2016 mod_wl.so
-rwxr-x—. 1 root root 553043   10月 7 2016 mod_wl_24.so

# mv * /etc/httpd/modules ← libディレクトリにあるすべてのモジュールを「/etc/httpd/modules」ディレクトリに移動します。

 

モジュール一式を /etc/httpd/modules ディレクトリに移動したら、権限を変更します。

# cd /etc/httpd/modules

# chmod +x libclntsh.so libdms2.so libnnz11.so libonssys.so libopmnsecure.so mod_wl.so mod_wl_24.so
# ls -l libclntsh.so libdms2.so libnnz11.so libonssys.so libopmnsecure.so mod_wl.so mod_wl_24.so
-rwxr-x–x. 1 root root 52761218 10月 7 2016 libclntsh.so
-rwxr-x–x. 1 root root 326469   10月 7 2016 libdms2.so
-rwxr-x–x. 1 root root 10262948 10月 7 2016 libnnz11.so
-rwxr-x–x. 1 root root 67967    10月 7 2016 libonssys.so
-rwxr-x–x. 1 root root 85877    10月 7 2016 libopmnsecure.so
-rwxr-x–x. 1 root root 552105   10月 7 2016 mod_wl.so
-rwxr-x–x. 1 root root 553043   10月 7 2016 mod_wl_24.so

 

以上で、Apache HTTP Server プラグインのインストールは完了です。

 

Apache BASIC 認証用の「アカウント」と「パスワード」の設定

htpasswd コマンドで Apache BASIC 認証用の「アカウント」「パスワード」を設定します。

 

※注意点

.htpasswdのパスを間違えることが多いため、htpasswd コマンドを実行する際は、必ずフルパスで指定しましょう。

※私はここに気が付かなくてうまく行かず、いろいろ迷ったことがありました。

 

[root@test07 conf]# htpasswd -c /etc/httpd/conf/.htpasswd test
New password:
Re-type new password:
Adding password for user test
[root@test07 conf]#

 

 オプション「-c」をつけることで、既存のパスワードファイルがあっても新規でパスワードファイルを作成します。

/etc/httpd/conf/httpd.conf ファイルの編集

httpd.conf ファイルの編集では、2点の設定を行います。

  • モジュールの追加(mod_wl_24.so)
  • Locationブロックの追加

 

 

ちなみに、プロキシする方法は以下の方法があります。

  • MIME タイプを基準にリクエストをプロキシする
  • MIME タイプを基準に WebLogic Server のクラスタにリクエストをプロキシする
  • パスを基準にリクエストをプロキシする

 

今回は「パスを基準にリクエストをプロキシする方法(Locationブロックの追加)」にします。

初めにモジュールを追加します。

「/etc/httpd/conf/httpd.conf」ファイルの「Dynamic Shared Object (DSO) Support」エリアに「Example(例)」があるのでその下に追加します。

 

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule’ lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l’) do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
Include conf.modules.d/*.conf
LoadModule weblogic_module modules/mod_wl_24.so ← この1行を追加します。

 

 

「/etc/httpd/conf/httpd.conf」ファイルの一番下に、以下の設定を追加します。

<Location /benefits> ← 今回は「http://192.168.1.10:7001/benefits」に対して BASIC 認証を設定するので「/benefits」にします。
    SetHandler weblogic-handler
    WebLogicPort 7001
    WebLogicHost localhost
    AuthUserFile /etc/httpd/conf/.htpasswd
    AuthName “This is a Protected Area” ← test でも account_test でも何でもいいです。
    AuthType Basic
    Require valid-user
</Location>

 

 

Apache の起動

httpd サービスを自動起動にする設定にして、サービスを起動します。

# systemctl enable httpd.service

# systemctl start httpd.service

Job for httpd.service failed because the control process exited with error code. See “systemctl status httpd.service” and “journalctl -xe” for details. ← エラーで起動ができませんでした。
# systemctl -l status httpd ← 原因を調べます。
httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 金 2017-08-11 12:40:05 JST; 8s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 30596 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 30586 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 30586 (code=exited, status=1/FAILURE)

 

8月 11 12:40:05 test07 systemd[1]: Starting The Apache HTTP Server…
8月 11 12:40:05 test07 httpd[30586]: httpd: Syntax error on line 58 of /etc/httpd/conf/httpd.conf: Cannot load modules/mod_wl_24.so into server: /etc/httpd/modules/mod_wl_24.so: cannot open shared object file: Permission denied ← 一見すると権限の問題に見えます。
8月 11 12:40:05 test07 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
8月 11 12:40:05 test07 kill[30596]: kill: cannot find process “”
8月 11 12:40:05 test07 systemd[1]: httpd.service: control process exited, code=exited status=1
8月 11 12:40:05 test07 systemd[1]: Failed to start The Apache HTTP Server.
8月 11 12:40:05 test07 systemd[1]: Unit httpd.service entered failed state.
8月 11 12:40:05 test07 systemd[1]: httpd.service failed.

 

 

lddコマンドで共有ライブラリの関係を確認します。

# ldd mod_wl_24.so ← mod_wl_24.so モジュールの依存関係を調べます。
[root@test07 modules]# ldd mod_wl_24.so
linux-vdso.so.1 => (0x00007ffff9efa000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f01f6383000)
libopmnsecure.so => /etc/httpd/modules/libopmnsecure.so (0x00007f01f6172000)
libonssys.so => /etc/httpd/modules/libonssys.so (0x00007f01f5f65000)
libdms2.so => /etc/httpd/modules/libdms2.so (0x00007f01f5d24000)
libm.so.6 => /lib64/libm.so.6 (0x00007f01f5a21000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f01f580b000)
libc.so.6 => /lib64/libc.so.6 (0x00007f01f544a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f01f5245000)
/lib64/ld-linux-x86-64.so.2 (0x00007f01f6917000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f01f5029000)
librt.so.1 => /lib64/librt.so.1 (0x00007f01f4e21000)

 

モジュールの依存関係は特に問題なさそうです。

 

念のため共有ライブラリのパス(LD_LIBRARY_PATH)を確認します。

共有ライブラリのパスの設定も特に問題なさそうです。

# echo $LD_LIBRARY_PATH
:/etc/httpd/modules

 

# cat /etc/profile

~ 省略 ~

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/etc/httpd/modules

 

 

更に

「httpd: Syntax error on line 58 of /etc/httpd/conf/httpd.conf: Cannot load modules/mod_wl_24.so into server: /etc/httpd/modules/mod_wl_24.so: cannot open shared object file: Permission denied」のエラーについて「/var/log/messages」を調査したところ、答えが出ていました!

 

Aug 11 15:02:36 test07 systemd: Starting The Apache HTTP Server…
Aug 11 15:02:36 test07 httpd: [Fri Aug 11 15:02:36.807083 2017] [so:warn] [pid 3705] AH01574: module headers_module is already loaded, skipping
Aug 11 15:02:36 test07 httpd: httpd: Syntax error on line 58 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_wl_24.so into server: /etc/httpd/modules/mod_wl_24.so: cannot open shared object file: Permission denied
Aug 11 15:02:36 test07 systemd: httpd.service: main process exited, code=exited, status=1/FAILURE
Aug 11 15:02:36 test07 kill: kill: cannot find process “”
Aug 11 15:02:36 test07 systemd: httpd.service: control process exited, code=exited status=1
Aug 11 15:02:36 test07 systemd: Failed to start The Apache HTTP Server.
Aug 11 15:02:36 test07 systemd: Unit httpd.service entered failed state.
Aug 11 15:02:36 test07 systemd: httpd.service failed.
Aug 11 15:02:36 test07 dbus[655]: [system] Activating service name=’org.fedoraproject.Setroubleshootd’ (using servicehelper)
Aug 11 15:02:36 test07 dbus-daemon: dbus[655]: [system] Activating service name=’org.fedoraproject.Setroubleshootd’ (using servicehelper)
Aug 11 15:02:39 test07 dbus[655]: [system] Successfully activated service ‘org.fedoraproject.Setroubleshootd’
Aug 11 15:02:39 test07 dbus-daemon: dbus[655]: [system] Successfully activated service ‘org.fedoraproject.Setroubleshootd’
Aug 11 15:02:42 test07 setroubleshoot: failed to retrieve rpm info for /usr/lib64/httpd/modules/mod_wl_24.so
Aug 11 15:02:42 test07 setroubleshoot: SELinux is preventing /usr/sbin/httpd from open access on the file /usr/lib64/httpd/modules/mod_wl_24.so. For complete SELinux messages. run sealert -l 059555ba-6836-4746-b427-d49c29b9007b ← ここに答えが出ていました。
Aug 11 15:02:42 test07 python: SELinux is preventing /usr/sbin/httpd from open access on the file /usr/lib64/httpd/modules/mod_wl_24.so.#012#012***** Plugin restorecon (92.2 confidence) suggests ************************#012#012If you want to fix the label. #012/usr/lib64/httpd/modules/mod_wl_24.so default label should be httpd_modules_t.#012Then you can run restorecon.#012Do#012# /sbin/restorecon -v /usr/lib64/httpd/modules/mod_wl_24.so#012#012***** Plugin catchall_boolean (7.83 confidence) suggests ******************#012#012If you want to allow httpd to read user content#012Then you must tell SELinux about this by enabling the ‘httpd_read_user_content’ boolean.#012You can read ‘None’ man page for more details.#012Do#012setsebool -P httpd_read_user_content 1#012#012***** Plugin catchall (1.41 confidence) suggests **************************#012#012If you believe that httpd should be allowed open access on the mod_wl_24.so file by default.#012Then you should report this as a bug.#012You can generate a local policy module to allow this access.#012Do#012allow this access for now by executing:#012# ausearch -c ‘httpd’ –raw | audit2allow -M my-httpd#012# semodule -i my-httpd.pp#012

 

「SELinux is preventing /usr/sbin/httpd from open access on the file /usr/lib64/httpd/modules/mod_wl_24.so.」のメッセージを翻訳すると、「A privent B from C」は「Aは、BがCしないように防ぐ」なので、「SELINUXは、httpd が mod_wl_24.so にアクセスしないように防いだ」という意味になります。

 

まさに SELINUX が httpd をブロックしていました。。

もっと早く SELINUX の存在に気が付けばよかったというか、もっと早く「/var/log/messages」を確認すれば良かったと思いました。

 

念のため「SELINUX」の設定を確認します。

# getenforce
Enforcing ← やはり「Enforcing」になっています。

 

「レンタルサーバー」でも「VPS」でも「SIer」の現場でもサーバー構築時には「SELINUX」を「disabled」に設定するということが半ば常識になっていますが、今回改めて最初に「SELINUX」「disabled」にしておかないと、必ず将来何かしら障害を起こすからという「謎のアドバイス」を身を持って経験したような気がします(笑)

 

 

早速「/etc/selinux/config」を編集して「SELINUX」「disabled」に設定します。

# vi /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled ← SELINUX を「disabled」にします。
# SELINUXTYPE= can take one of three two values:
# targeted – Targeted processes are protected,
# minimum – Modification of targeted policy. Only selected processes are protected.
# mls – Multi Level Security protection.
SELINUXTYPE=targeted

 

 

SELINUX を変更したら OS を reboot します。

# reboot

 

 

再起動後に「Disabled」になっていることを確認します。

# getenforce
Disabled ← 「Disabled」になっています。

 

 

httpd.serviceのステータスを確認します。

# systemctl -l status httpd.service
httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 金 2017-08-11 15:27:58 JST; 2min 1s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 3544 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 3541 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 3541 (code=exited, status=1/FAILURE)

8月 11 15:27:57 test07 systemd[1]: Starting The Apache HTTP Server…
8月 11 15:27:58 test07 httpd[3541]: [Fri Aug 11 15:27:58.086180 2017] [so:warn] [pid 3541] AH01574: module headers_module is already loaded, skipping
8月 11 15:27:58 test07 httpd[3541]: httpd: Syntax error on line 58 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_wl_24.so into server: libopmnsecure.so: cannot open shared object file: No such file or directory ← パスがおかしい?ファイルが見つからないと言っています。
8月 11 15:27:58 test07 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
8月 11 15:27:58 test07 kill[3544]: kill: cannot find process “”
8月 11 15:27:58 test07 systemd[1]: httpd.service: control process exited, code=exited status=1
8月 11 15:27:58 test07 systemd[1]: Failed to start The Apache HTTP Server.
8月 11 15:27:58 test07 systemd[1]: Unit httpd.service entered failed state.
8月 11 15:27:58 test07 systemd[1]: httpd.service failed.

 

 

共有ライブラリのパスを確認します。

# echo $LD_LIBRARY_PATH
:/etc/httpd/modules
# ldd libopmnsecure.so
ldd: ./libopmnsecure.so: そのようなファイルやディレクトリはありません ← ライブラリにパスが通っていない?見つからないようです。

 

# ldd mod_wl_24.so
ldd: ./mod_wl_24.so: そのようなファイルやディレクトリはありません ← mod_wl_24.so にもライブラリにパスが通っていない?見つからないようです。

 

OSの再起動前に「ldd mod_wl_24.so」コマンドを実行したら共有ライブラリを認識したのですが、再起動後は「そのようなファイルやディレクトリはありません」のメッセージが出力されました。

根本的に何かしら設定が足りていないようです。

 

 

Apache にインストールされているモジュールの確認をします。

# httpd -l ← 静的にロードされたモジュール一覧
Compiled in modules:
core.c
mod_so.c
http_core.c

 

# httpd -M ← 動的にロードされたモジュール一覧
[Fri Aug 11 15:43:27.637504 2017] [so:warn] [pid 3738] AH01574: module headers_module is already loaded, skipping
[Fri Aug 11 15:43:27.735131 2017] [weblogic:warn] [pid 3738] The Debug directive is ignored. The web server log level is used instead.
[Fri Aug 11 15:43:27.735159 2017] [weblogic:warn] [pid 3738] The WLLogFile directive is ignored. The web server log file is used instead.

AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 192.168.1.10. Set the ‘ServerName’ directive globally to suppress this message
Loaded Modules: ← 動的にロードされたモジュールの一覧が確認できます。
core_module (static)
so_module (static)
http_module (static)
access_compat_module (shared)
actions_module (shared)
alias_module (shared)
allowmethods_module (shared)
auth_basic_module (shared)
auth_digest_module (shared)
authn_anon_module (shared)
authn_core_module (shared)
authn_dbd_module (shared)
authn_dbm_module (shared)
authn_file_module (shared)
authn_socache_module (shared)
authz_core_module (shared)
authz_dbd_module (shared)
authz_dbm_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_owner_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cache_module (shared)
cache_disk_module (shared)
data_module (shared)
dbd_module (shared)
deflate_module (shared)
dir_module (shared)
dumpio_module (shared)
echo_module (shared)
env_module (shared)
expires_module (shared)
ext_filter_module (shared)
filter_module (shared)
headers_module (shared)
include_module (shared)
info_module (shared)
log_config_module (shared)
logio_module (shared)
mime_magic_module (shared)
mime_module (shared)
negotiation_module (shared)
remoteip_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
slotmem_plain_module (shared)
slotmem_shm_module (shared)
socache_dbm_module (shared)
socache_memcache_module (shared)
socache_shmcb_module (shared)
status_module (shared)
substitute_module (shared)
suexec_module (shared)
unique_id_module (shared)
unixd_module (shared)
userdir_module (shared)
version_module (shared)
vhost_alias_module (shared)
dav_module (shared)
dav_fs_module (shared)
dav_lock_module (shared)
lua_module (shared)
mpm_prefork_module (shared)
proxy_module (shared)
lbmethod_bybusyness_module (shared)
lbmethod_byrequests_module (shared)
lbmethod_bytraffic_module (shared)
lbmethod_heartbeat_module (shared)
proxy_ajp_module (shared)
proxy_balancer_module (shared)
proxy_connect_module (shared)
proxy_express_module (shared)
proxy_fcgi_module (shared)
proxy_fdpass_module (shared)
proxy_ftp_module (shared)
proxy_http_module (shared)
proxy_scgi_module (shared)
proxy_wstunnel_module (shared)
systemd_module (shared)
cgi_module (shared)
weblogic_module (shared) ← WebLogicのモジュールはロードされているようです。

 

フルパスでなければいけないのか、しかしそれもおかしな話です。

今のところの仮説ですが

  • 「LoadModule weblogic_module /etc/httpd/modules/mod_wl_24.so」はフルパスだからモジュールをロードできる
  • 「LoadModule weblogic_module modules/mod_wl_24.so」にするとファイルが見つからずにモジュールをロードできないと思われる
  • 「httpd: Syntax error on line 58 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_wl_24.so into server: libopmnsecure.so: cannot open shared object file: No such file or directory」のメッセージが出る原因は「httpd.conf」ファイルに「LoadModule」の設定が入っていないから

 

解決策として

  • もう一度Apacheが正しくモジュールをロードできる設定を調べる
  • 「libopmnsecure.so」をロードするモジュールとして「httpd.conf」に追加する

を試します。

 

httpd.service が $LD_LIBRARY_PATH を読み込めるように設定する

調査した結果、$LD_LIBRARY_PATH の設定は「/etc/profile」で設定したのですが、よくよく考えてみれば httpd.service は systemd が起動するので、パスの設定が入っていないのではと気が付きました。

つまり、systemd が「$LD_LIBRARY_PATH」の設定を認識しなければ、「/etc/httpd/modules」にコピーした「ibopmnsecure.so」を認識できない可能性があるということです。

 

個別アカウントではなく、システム全体で「LD_LIBRARY_PATH」を設定する場合は、「/etc/ld.so.conf」ファイルにパスを設定します。

# vi /etc/ld.so.conf

include ld.so.conf.d/*.conf
/etc/httpd/modules ← 「/etc/httpd/modules」の行を追加します。

 

# ldconfig ← 「/etc/ld.so.conf」ファイルの編集をシステムに反映させます。

 

# ldconfig -v ← 現在の設定を確認します。
ldconfig: /libx32 の情報取得 (stat) ができません: そのようなファイルやディレクトリはありません
ldconfig: パス `/usr/lib’ が二回以上与えられました
ldconfig: パス `/usr/lib64′ が二回以上与えられました
ldconfig: /usr/libx32 の情報取得 (stat) ができません: そのようなファイルやディレクトリはありません
/usr/lib64/dyninst:
    libsymtabAPI.so.8.2 -> libsymtabAPI.so.8.2.0
    libsymLite.so.8.2 -> libsymLite.so.8.2.0
    libstackwalk.so.8.2 -> libstackwalk.so.8.2.0
    libpcontrol.so.8.2 -> libpcontrol.so.8.2.0
    libpatchAPI.so.8.2 -> libpatchAPI.so.8.2.0
    libparseAPI.so.8.2 -> libparseAPI.so.8.2.0
    libinstructionAPI.so.8.2 -> libinstructionAPI.so.8.2.0
    libdyninstAPI_RT.so.8.2 -> libdyninstAPI_RT.so.8.2.0
    libdyninstAPI.so.8.2 -> libdyninstAPI.so.8.2.0
    libdynElf.so.8.2 -> libdynElf.so.8.2.0
    libdynDwarf.so.8.2 -> libdynDwarf.so.8.2.0
    libdynC_API.so.8.2 -> libdynC_API.so.8.2.0
    libcommon.so.8.2 -> libcommon.so.8.2.0
/usr/lib64/iscsi:
    libiscsi.so.2 -> libiscsi.so.2.0.10900
/usr/lib64/mysql:
    libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
/usr/lib64/qt-3.3/lib:
    libqui.so.1 -> libqui.so.1.0.0
    libqt-mt.so.3 -> libqt-mt.so.3.3.8
/etc/httpd/modules:  ← 新しくモジュールが追加されたようです。
    libnnz11.so -> libnnz11.so  
    libdms2.so -> libdms2.so  
    libclntsh.so.11.1 -> libclntsh.so  
    libopmnsecure.so -> libopmnsecure.so 
    libonssys.so -> libonssys.so 

 

 

/etc/httpd/conf/httpd.conf ファイルをさらに調べる

しかし、再度エラーで Apache が起動しませんでした。

まだまだ調査する必要があります。

# systemctl start httpd.service

Job for httpd.service failed because a fatal signal was delivered to the control process. See “systemctl status httpd.service” and “journalctl -xe” for details. ← 再度エラーになりました。

 

 

 

ログを確認します。

「ServerName」の設定がないことでエラーが出力されているようです。

# systemctl -l status httpd.service
httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: signal) since 金 2017-08-11 17:49:20 JST; 1min 46s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 4484 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 5578 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=killed, signal=KILL)
Main PID: 5578 (code=killed, signal=KILL)
Status: “Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec”
CGroup: /system.slice/httpd.service

8月 11 17:46:19 test07 systemd[1]: Starting The Apache HTTP Server…
8月 11 17:46:52 test07 httpd[5578]: AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 192.168.1.10. Set the ‘ServerName’ directive globally to suppress this message
8月 11 17:47:50 test07 systemd[1]: httpd.service start operation timed out. Terminating.
8月 11 17:49:20 test07 systemd[1]: httpd.service stop-final-sigterm timed out. Killing.
8月 11 17:49:20 test07 systemd[1]: httpd.service: main process exited, code=killed, status=9/KILL
8月 11 17:49:20 test07 systemd[1]: Failed to start The Apache HTTP Server.
8月 11 17:49:20 test07 systemd[1]: Unit httpd.service entered failed state.
8月 11 17:49:20 test07 systemd[1]: httpd.service failed.

 

 

再度「/etc/httpd/conf/httpd.conf」ファイルを編集します。

# vi /etc/httpd/conf/httpd.conf

 

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn’t have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
ServerName test07 ← 「ServerName」を追加します。

 

 

再度「Apache」を再起動します。

# systemctl start httpd.service

# systemctl status httpd.service
httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since 金 2017-08-11 17:54:50 JST; 4s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 4484 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Main PID: 5851 (httpd)
Status: “Processing requests…”
CGroup: /system.slice/httpd.service
tq5851 /usr/sbin/httpd -DFOREGROUND
tq5856 /usr/sbin/httpd -DFOREGROUND
tq5857 /usr/sbin/httpd -DFOREGROUND
tq5858 /usr/sbin/httpd -DFOREGROUND
tq5859 /usr/sbin/httpd -DFOREGROUND
mq5860 /usr/sbin/httpd -DFOREGROUND

8月 11 17:54:50 test07 systemd[1]: Starting The Apache HTTP Server…
8月 11 17:54:50 test07 systemd[1]: Started The Apache HTTP Server.

 

ようやく Apache が起動しました。。

 

しかし、これで手順が確立されたと思います。

再度手順をまとめます。

※しかし、まだ Apache 側では BASIC 認証の部分、WebLogic 側との連携部分も残っているので、まだまだひと波乱、ふた波瀾ありそうですが・・・

 

サンプルの Web アプリケーションの web.xml ファイルの編集手順

再度「/etc/httpd/conf/httpd.conf」に入れた Web アプリケーションの設定について解説します。

今回はサンプルプログラムとして「benefits.war」というサンプルアプリを利用します。

「benefits.war」ファイルは Oracle 社が提供していますが、以下のURLより入手できます。

 

Oracle WebLogic Server 12c:アプリケーションのデプロイとアンデプロイ

http://www.oracle.com/webfolder/technetwork/jp/obe/fmw/wls/12c/deployapps/deployapps.htm

 

 

上記ページにアクセスすると、下図のように「benefits.war」のリンクがあるのでクリックします。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

「benefits.war」をPCにダウンロードします。

設定ファイル(web.xml)の編集をしますが、サーバー上でデプロイした後に編集をします。(まず最初にデプロイしてから「web.xml」ファイルを編集します)

 

※本当は Eqlipse で編集してデプロイをすればいいのですが、今回はサンプルの Web アプリで開発環境の解説はしないため、編集はサーバー側で行い、java コマンドで WAR ファイルを作成します。

 

benefits.war のデプロイ手順

まず初めにダウンロードした「benefits.war」ファイルをデプロイします。

 

WebLogic Server の管理画面にログインします。

今回の環境では「http://192.168.10.1:7001/console」になります。

ログインしたら、下図のように左側ペインの「base_domain」「デプロイメント」をクリックします。

 

 

「デプロイメントのサマリー」画面が表示されたら「インストール」ボタンをクリックします。

benefits.war のデプロイ手順

 

 

「アプリケーション・インストール・アシスタント」画面が表示されたら「ファイルをアップロード」のリンクをクリックします。

benefits.war のデプロイ手順

 

 

 

下図のように画面が変わったら「デプロイメント・アーカイブ」「参照」ボタンをクリックします。

benefits.war のデプロイ手順

 

 

「デプロイメント・アーカイブ」「benefits.war」ファイルがアップロードされていることを確認し、「次」ボタンをクリックします。

benefits.war のデプロイ手順

 

 

「パス」の設定が出てくるので、デフォルトのまま「次」ボタンをクリックします。

benefits.war のデプロイ手順

 

 

「インストール・タイプ および スコープ の選択」画面が表示されたらデフォルトのまま「次」ボタンをクリックします。

benefits.war のデプロイ手順

 

 

「オプション設定」の画面が表示されたらデフォルトのまま「終了」ボタンをクリックします。

benefits.war のデプロイ手順

 

 

下図のように「benefits」がデプロイされていることを確認します。

benefits.war のデプロイ手順

 

 

 

「benefits.war」の「web.xml」の編集

デプロイした「benefits.war」「web.xml」を編集します。

その後、再度「benefits.war」をデプロイします。

 

具体的に何をするのかと言うと、「web.xml」セキュリティの設定を入れます。

その結果、Apache と連携して BASIC 認証を利用することができます。

※「web.xml」にセキュリティの設定を入れないと、BASIC 認証の「アカウント」「パスワード」入力画面が出ません。

→つまりセキュリティ周りがスルーされます。

 

デプロイした「benefits.war」を解凍して「web.xml」を編集します。

「benefits.war」の場所は、WebLogic の管理画面から「benefits.war」ファイルをアップロードした際のパスの配下にあります。

※今回の環境の場合は「/home/test/wls12212/user_projects/domains/base_domain/servers/AdminServer/upload/benefits.war/app/」ディレクトリにあります。

$ cd /home/test/wls12212/user_projects/domains/base_domain/servers/AdminServer/upload/benefits.war/app/
$ ls
benefits.war

$ mkdir tmp

$ cp -ip benefits.war tmp/benefits.zip

$ cd tmp

$ unzip benefits.zip

$ ls
META-INF WEB-INF benefits.zip company.jsp dental.jsp health.jsp vision.jsp welcome.html

$ cd WEB-INF

$ ls
classes companybanner.html copyright.html dizzyworldlogo.gif web.xml

 

web.xml ファイルを編集します。

$ vi web.xml

 

 

【編集前】

<?xml version=’1.0′ encoding=’UTF-8′?>
<web-app xmlns=”http://java.sun.com/xml/ns/j2ee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
    <servlet>
        <servlet-name>Benefits</servlet-name>
        <servlet-class>com.dizzyworld.BenefitsServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Benefits</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>welcome.html</welcome-file>
    </welcome-file-list>
</web-app>

 

【編集後】

<?xml version=’1.0′ encoding=’UTF-8′?>
<web-app xmlns=”http://java.sun.com/xml/ns/j2ee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
    <servlet>
        <servlet-name>Benefits</servlet-name>
        <servlet-class>com.dizzyworld.BenefitsServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Benefits</servlet-name>
        <url-pattern>/benefits</url-pattern> ← 今回は「http://192.168.1.10:7001/benefits」に対して設定するので、「/benefits」を入力します。
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>welcome.html</welcome-file>
    </welcome-file-list>

 

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Success</web-resource-name>
            <url-pattern>*</url-pattern> ← 全体に対してセキュリティを設定するので「*」を設定します。
        </web-resource-collection>
        <auth-constraint>
            <role-name>test</role-name> 
        </auth-constraint>
    </security-constraint>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>myrealm</realm-name> ← セキュリティ・レルムと合せます。今回はデフォルトの「myrealm」を利用して認証をするので「myrealm」を設定します。
    </login-config>

    <security-role>
        <role-name>test</role-name>
    </security-role>
</web-app>

 

 

<servlet>

servlet 要素では、サーブレットの宣言的なデータを指定します。

This element defines servlet used in the application. If a jsp-file is specified and the <load-on-startup> element is present, then the JSP is precompiled and loaded when WebLogic Server starts in the order of value given in <load-on-startup>.

 

<servlet-name>

サーブレットの標準名を定義します。

この名前は、デプロイメント記述子内の他の場所でそのサーブレット定義を参照する場合に使用されます。

 

<servlet-class>

サーブレットの完全修飾クラス名です。

servlet の本体では、<servlet-class> タグまたは <jsp-file> タグのいずれか一方のみを使用します。

 

<servlet-mapping>

servlet-mapping 要素では、サーブレットと URL パターンの間のマッピングを定義します。

After all the servlets are defined, they need to be mapped to the URL pattern. The portion of the URL after the http://host:port + WebAppName is compared to the <url-pattern> by WebLogic Server. If the patterns match, the servlet mapped in this element will be called.

 

<servlet-name>

URL パターンのマッピング先のサーブレットの名前を指定します。

この名前は、<servlet> 宣言タグでサーブレットに割り当てた名前に対応します。

 

<url-pattern>

URL を解決する場合に使用されるパターンを記述します。

http://host:port (「host」はホスト名、「port」はポート番号) + WebAppName に続く URL の部分は、WebLogic Server によって <url-pattern> と比較されます。パターンが一致すれば、この要素でマップされているサーブレットが呼び出されます。

 

<welcome-file-list>

省略可能な welcome-file-list 要素では、welcome-file 要素の順序付きリストを指定します。

URL 要求がディレクトリ名の場合、この要素で指定された最初のファイルが WebLogic Server によって返されます。

そのファイルが見つからない場合は、WebLogic Server によってリスト内の次のファイルが返されます。

 

<security-constraint>

security-constraint 要素では、<web-resource-collection> 要素で定義されたリソースの集合へのアクセス特権を定義します。

 

<web-resource-collection>

このセキュリティ制約が適用される Web アプリケーションのコンポーネントを定義します。

各 <security-constraint> 要素では、1 つまたは複数の <web-resource-collection> 要素が必要です。

これらの要素では、このセキュリティ制約が適用される Web アプリケーションの領域を定義します。

これは、security-constraint 内の要素です。

 

<url-pattern>

<url-pattern> 要素を 1 つまたは複数使用して、このセキュリティ制約の適用先となる URL パターンを宣言します。

この要素を 1 つも使用しない場合、この <web-resource-collection> は WebLogic Server から無視されます。

 

 

「benefits.war」の「weblogic.xml」の作成

今回は、「Apache」と連携して BASIC 認証環境を構築するため「weblogic.xml」ファイルの作成も必要です。

デフォルトでは「weblogic.xml」ファイルはありませんので、新規作成する必要があります。

weblogic.xml ファイルの作成場所は「WEB-INF」ディレクトリ配下、つまり「web.xml」ファイルと同じディレクトリになります。

 

$ vi weblogic.xml

<weblogic-web-app>
    <session-descriptor></session-descriptor>
    <jsp-descriptor></jsp-descriptor>
    <container-descriptor></container-descriptor>
    <context-root>/benefits</context-root> ← 今回は「http://192.168.1.10:7001/benefits」に対して設定するので、「/benefits」を入力します。

 

    <security-role-assignment>
        <role-name>test</role-name> ← アカウント名を設定します。
        <principal-name>test</principal-name> ← アカウント名を設定します。
    </security-role-assignment>
</weblogic-web-app>

 

 

上記編集後に、benefit.war ファイルを作成します。

ls
META-INF WEB-INF benefits.zip company.jsp dental.jsp health.jsp vision.jsp welcome.html
$ rm benefits.zip ← 「benefits.zip」ファイルは不要なので削除します。
jar cvf ../benefits.war * ← カレントディレクトリのファイル一式を、1つ上のディレクトリで「benefits.war」というファイル名の WAR ファイルを作成します。
マニフェストが追加されました
エントリMETA-INF/を無視します
エントリMETA-INF/MANIFEST.MFを無視します
WEB-INF/を追加中です(入=0)(出=0)(0%格納されました)
WEB-INF/classes/を追加中です(入=0)(出=0)(0%格納されました)
WEB-INF/classes/com/を追加中です(入=0)(出=0)(0%格納されました)
WEB-INF/classes/com/dizzyworld/を追加中です(入=0)(出=0)(0%格納されました)
WEB-INF/classes/com/dizzyworld/BenefitsServlet.classを追加中です(入=1549)(出=813)(47%収縮されました)
WEB-INF/classes/com/dizzyworld/BenefitsServlet.javaを追加中です(入=1529)(出=457)(70%収縮されました)
WEB-INF/companybanner.htmlを追加中です(入=53)(出=46)(13%収縮されました)
WEB-INF/copyright.htmlを追加中です(入=33)(出=35)(-6%収縮されました)
WEB-INF/dizzyworldlogo.gifを追加中です(入=44826)(出=24057)(46%収縮されました)
WEB-INF/web.xmlを追加中です(入=1173)(出=404)(65%収縮されました)
WEB-INF/weblogic.xmlを追加中です(入=366)(出=143)(60%収縮されました)
company.jspを追加中です(入=505)(出=277)(45%収縮されました)
dental.jspを追加中です(入=214)(出=133)(37%収縮されました)
health.jspを追加中です(入=244)(出=165)(32%収縮されました)
vision.jspを追加中です(入=194)(出=128)(34%収縮されました)
welcome.htmlを追加中です(入=5832)(出=1857)(68%収縮されました)
cd ..
ls
benefits.war tmp

 

WebLogic 管理画面で「benefits」を更新する

web.xml ファイルを編集して再度「benefits.war」を作成したので、再度デプロイ(更新)します。

 

下図のように左側ペインの「base_domain」「デプロイメント」をクリックします。

 

 

デプロイメントの一覧で「benefits」にチェックを入れ、「更新」ボタンをクリックします。

benefits.war のデプロイ手順

 

 

「終了」ボタンをクリックします。

benefits.war のデプロイ手順

 

 

動作確認をする

「http://192.168.1.10:7001/benefits」にアクセスをします。

 

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

BASIC 認証画面が出ました。

結構時間を掛けていろいろ調べたり試行錯誤して完成したので非常に嬉しいです。

 

アカウント名とパスワードを入力しますが、最初にわざと間違えて本当に BASIC 認証が効いているのか確認します。

 

わざと間違えると下図のように、再度ログイン画面が表示されます。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

 

次は「キャンセル」ボタンをクリックして BASIC 認証の回避を図ります。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

 

BASIC 認証を回避したら下図のように「Error 401 — unauthorized」の画面が表示されました。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

 

最後に正しい「アカウント」と「パスワード」を入力します。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

 

Web アプリの画面が表示されました。

【Apache 2.4】【WebLogic 12】連携手順と BASIC 認証の設定方法について

 

 

 

Apache側設定手順のまとめ

まとめてみると、結構な設定作業が必要です。

  • /etc/httpd/modules に WebLogic 用モジュールを配置する
  • モジュールの権限を変更する
  • Apache BASIC 認証用の「アカウント」と「パスワード」の設定
  • httpd.conf でロードモジュールの設定(LoadModule weblogic_module modules/mod_wl_24.so のみ)の追加
  • httpd.conf で「Location」の設定の追加
  • SELINUXの「disabled」化
  • /etc/ld.so.conf ファイルにモジュールのパス(ライブラリパス)を追加
  • httpd.conf に「ServerName」の設定を追加

 

 

 

まとめ

BASIC認証の部分がうまく動かない状態です。

更に調査します。

2017年8月14日(月)

ようやくBASIC認証の部分がうまくいきました。

BASIC 認証の画面が出た時は若干感動しました(笑)

ここまで長い道のりでしたが、基本的な WebLogic と Apache BASIC 認証の連携ができたと思います。

 

参考サイト

WebサーバでBASIC認証を行うときの注意点 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください