![如何从我的 tomcat servlet 中的 httpd 基本身份验证获取远程用户?](https://linux22.com/image/665065/%E5%A6%82%E4%BD%95%E4%BB%8E%E6%88%91%E7%9A%84%20tomcat%20servlet%20%E4%B8%AD%E7%9A%84%20httpd%20%E5%9F%BA%E6%9C%AC%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E8%8E%B7%E5%8F%96%E8%BF%9C%E7%A8%8B%E7%94%A8%E6%88%B7%EF%BC%9F.png)
我已成功将 mod_proxy_ajp 从我的 httpd 配置到 Tomcat,其中 httpd 执行 SSL 和基本身份验证。我需要我的 tomcat 应用程序中的远程用户,因此我认为使用 AJP 会填充标头,这样 HttpServletRequest.getRemoteUser() 就会给我用户名,但它是“null”。但是 HttpServletRequest.getRemoteHost() 填充正确。
我需要做什么才能从我的 tomcat servlet 中的 httpd 基本身份验证中获取远程用户?
答案1
在 StackOverflow 上找到了答案...通过AJP将REMOTE_USER转发到tomcat
底线是您必须添加tomcatAuthentication="false"
到您的 AJP 连接器。
默认...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
...变成...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" tomcatAuthentication="false" />