3

現在、2つのHTTPSポート(たとえば、 4438443 )で提供されているWebアプリケーションがあります。アプリケーションにはフロントエンドとしてApacheHTTPサーバーがあり、ポートの1つで特定のパスを除外するようにApache構成を設定する際に問題が発生しています。Apacheで以下のように設定を設定しました

<Location /MyApp>
  AuthType SOME_AUTH_MODULE
  require user valid-user
</Location>

<Location ~ "/MyApp/(Login.html|Welcome.html)">
  Satisfy Any
  Allow from all
  AuthType None
  Require all granted
</Location>

以下のようにApacheで仮想ホストを設定しています

<VirtualHost _default_:443>
  DocumentRoot /path/to/my/files
  Servername www.example.com:443
  Other details go here

</VirtualHost>

<VirtualHost _default_:8443>
  DocumentRoot /path/to/my/files
  Servername www.example.com:8443
  Other details go here

</VirtualHost>

Locationディレクティブがホストポートの情報を取得しないことを考えると、上記の構成で予想される問題は何ですか?Locationディレクティブは最初に一致するエントリを使用しますか、それとも次々に使用しますか?

シボレスを知っている人々のための詳細

最初のロケーションエントリにより、ユーザーはSSO(シングルサインオン)環境でアプリケーションにアクセスできます。2番目のエントリは、ユーザーがSSOを経由せずに別のポート(8443)で同じ仮想ホストにアクセスできるように設計されています。私たちが見ているのは、リクエストヘッダーが処理チェーンの終わりに向かって失われていることです。2番目のLocationエントリを削除すると、すべて正常に機能します。

4

1 に答える 1

3

保護するvhost/Locationディレクティブ内にディレクティブを配置します。

<VirtualHost _default_:443>
  DocumentRoot /path/to/my/files
  Servername www.example.com:443
  <Location /MyApp>
  AuthType SOME_AUTH_MODULE
  require user valid-user
</Location>
  Other details go here

</VirtualHost>

<VirtualHost _default_:8443>
  DocumentRoot /path/to/my/files
  Servername www.example.com:8443
  Other details go here

</VirtualHost>
于 2012-11-08T20:42:35.260 に答える