【问题标题】:Using native webserver authentication with Tomcat Manager WebApp通过 Tomcat Manager WebApp 使用本机 Web 服务器身份验证
【发布时间】:2012-01-01 13:33:04
【问题描述】:

我正在运行带有 AJP 连接器的 Tomcat 6.0.24。对于连接器,我设置了属性 tomcatAuthentication="false" 以便 Tomcat 从本机 Web 服务器(具有 mod_proxy_ajp 和 mod_cosign 的 Apache 2.2.15)获取经过身份验证的用户的名称。这对于我设置的“Hello, World”servlet 工作正常。

当使用 Tomcat 的 MemoryRealm、tomcat-users.xml 文件和默认配置中的连接器 (tomcatAuthentication="true") 时,我的 Tomcat 管理器 WebApp 工作正常。但是使用 tomcatAuthentication="false",我从 Tomcat 管理器 WebApp 收到错误“HTTP 状态 403 - 对请求的资源的访问已被拒绝”。

如何将 Tomcat 管理器 Web 应用程序配置为依赖本机 Web 服务器 (Apache HTTPD) 进行身份验证,但使用独立源(tomcat-users.xml 或其他)作为用户角色?我已阅读文档并在 Google 上搜索过,但我对 Tomcat 的了解还不够,无法找到答案。

【问题讨论】:

  • 三年后我也遇到了同样的问题。你还记得你是否想到了什么吗?

标签: authentication tomcat servlets


【解决方案1】:

来自Tomcat Manual

  1. 配置 Tomcat 或 Web 服务器是否进行身份验证

当 Tomcat 与 Web 服务器(例如 Apache)一起使用时,默认值为 让 Tomcat 继续处理身份验证。任何经过身份验证的 从 Web 服务器转发到 Tomcat 的请求中指定的用户 将被忽略。

如果您希望 Tomcat 使用由 网络服务器,添加:

tomcatAuthentication="false" to the Ajp12Connector or Ajp13Connector as appropriate. For example:

<Ajp13Connector port="8009" tomcatAuthentication="false" />

您是否尝试过添加第二个配置值。

【讨论】:

  • 当 tomcatAuthentication="false" 添加到连接器时,将使用 Apache HTTPD 完成的身份验证,这适用于期望它的 servlet。但是,这会破坏 Tomcat 管理器 WebApp。我的基本问题是,如何修复 Tomcat Manager WebApp 以便它使用通过连接器传递的身份验证?
  • 为了完整起见,这可以在“\conf\server.xml”中找到
猜你喜欢
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 2012-02-10
  • 2015-05-21
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多