web-dev-qa-db-ja.com

AJP使用時にセッションが無効

次の設定があります:フロントエンドを実行しているApache(AngularJS)
Tomcat 7ランニングバックエンド(Spring MVC、Spring Security)

ApacheConfig

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined

    LoadModule proxy_module libexec/Apache2/mod_proxy.so
    LoadModule proxy_ajp_module libexec/Apache2/mod_proxy_ajp.so

    ProxyRequests     off
    ProxyPreserveHost on

    ProxyPass         /api/  ajp://132.230.166.21:8009/OntoRais/api/
    ProxyPassReverse  /api/  ajp://132.230.166.21:8009/OntoRais/api/

    Alias /rais "/home/bwright/Repositories/ontology-toolchain/WebClient"
    <Directory "/home/bwright/Repositories/ontology-toolchain/WebClient">
        Order allow,deny
        Allow from all
        Require all granted
    </Directory
</VirtualHost>

ご覧のとおり、ajpプロトコルを使用してすべてのAPI呼び出しをTomcatサーバーに渡します。

Tomcat構成(Server.xml)

以下を除いて、クリーンインストールから何も変更されていません。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"  enableLookups="false"/>

フロントエンドを介してTomcatリソースにアクセスしようとすると、403が返されます。

HTTP Status 403 - Full authentication is required to access this resource accessing /OntoRais/api/user

Tomcatサーバーログに

13:25:10.034 [ajp-bio-8009-exec-7] DEBUG o.s.s.w.s.SessionManagementFilter - Requested session ID ED0779DC647DEE3C58DEA7059C260594 is invalid. 

Bowserを介してTomcatサーバーに直接同じリソースにアクセスする場合http://localhost:8080/OntoRais/api/userすべてが正常に機能します。

編集

明確にするために、132.230.166.21はlocalhostと同じマシンです。設定を変更せずにlocalhostと言うように変更しました。

ここの誰かがこのおかげで私を助けてくれることを願っていますベネディクト

1
bwright

問題は、追加後にSESSIONIDを設定することでした

ProxyPassReverseCookiePath /OntoRais /

apacheの設定では、すべて機能しました。

1
bwright