我有以下设置: Apache 运行前端(AngularJS)
Tomcat 7 运行后端(Spring MVC,Spring Security)
阿帕奇配置
<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 ,没有任何更改。
希望这里有人可以帮助我谢谢本尼迪克特
问题在于添加后设置 SESSIONID
到apache设置,一切正常。