Tomcat 带有 HTTPD 前端。管理器应用程序无法访问

Tomcat 带有 HTTPD 前端。管理器应用程序无法访问

我有一台 HTTPD 服务器,它在 Tomcat 服务器前面执行 LDAP 身份验证。我的应用程序驻留在 Tomcat 中。

我正在通过 tomcat 的 AJP 连接器将经过身份验证的请求代理到我的应用程序。现在我想关闭 HTTP 连接器。但管理器应用程序无法访问(显示 403 错误)。

  • 当我访问 http://localhost/my_app 时。一切正常。
  • 当我访问 http://localhost/manager/ 时,出现 403 错误。
  • 打开 HTTP 连接器(即 http://localhost:port/manager)后,即可访问。

答案1

这是有根据的猜测。我认为这可能是 Manager 部分和 Apache 都使用 HTTP 身份验证标头进行身份验证的情况。

当客户端连接到 时http://localhost/manager,Apache 会要求提供 LDAP 身份验证的身份验证凭据。然后,客户端会将身份验证信息发送给 Apache,Apache 接受请求并将其传递给 Tomcat 的管理器部分。

但是,由于凭证不是为经理定义的,因此它返回 403 错误。

解决方案是/manager从 LDAP 身份验证中排除部分内容。不幸的是,我不知道如何在 Apache 中做到这一点。

答案2

基于https://stackoverflow.com/questions/5808206/how-to-fix-tomcat-http-status-403-access-to-the-requested-resource-has-been-den

看起来你缺少一个角色定义。

在 tomcat-users.xml 文件中添加具有以下角色的用户manager

<role rolename="manager"/>
<user username="admin" password="admin" roles="manager"/>

相关内容