首页 文章

具有基本身份验证的Apache和Tomcat反向代理:Tomcat可以接收用户名吗?

提问于
浏览
1

我已成功配置Apache以侦听SSL / 443和代理Tomcat侦听HTTP / 8080 . 我还在Apache中设置了基本身份验证 .

一旦用户连接到我的Tomcat servlet,就会填充HttpServletRequest.getRemoteUser()或为null . 如果为null,我如何获得远程用户?

2 回答

  • 0

    我需要补充一下

    <Location />
        Order allow,deny
        Allow from all
        RequestHeader unset Authorization
    </Location>
    

    到包装位置,RequestHeader是修复它的专业 .

    我发现这个(再次)通过http://codeblow.com/questions/remove-fundamental-authentication-header-with-apache-mod-proxy/ - 不知道我去年在哪里找到它,这是一些安全问题的最后一个措施 .

  • 0

    最简单的解决方案可能是使用 mod_proxy_ajp ,除了代理请求之外,还会将各种元数据传输到Tomcat,包括身份验证信息,如 REMOTE_USER .

    These docs for Alfresco讨论了这个配置,其中包括Tomcat端的更改(以便它知道信任转发的身份验证)和Apache端 .

    如果您正在使用像 mod_proxy 这样的通用http代理,则需要安排Apache将 REMOTE_USER 的值添加到请求中(可能作为 X- 标头),然后安排您的Tomcat应用程序识别并信任该标头(您显然需要安排前端代理从任何传入请求中删除该标头) .

    我不知道你会如何在tomcat上做到这一点,但this post似乎有一些建议 .

相关问题