Tomcat9 管理员,Docker,登录失败

Tomcat 9 Manager, Docker, and the inability to get passed the login

所以我一直遇到无法通过 Tomcat 管理器登录页面的问题。似乎其他人也遇到过这个问题,但他们的 none 解决方案似乎在这种情况下对我有所帮助。以下是我更改过的文件,它们曾帮助我解决这个看似微不足道的问题,这令人沮丧。也许我只是需要一双新鲜的眼睛。

到目前为止,我的问题是登录不会接受我提供给他们的凭据,经理一直给我基本的身份验证登录,直到我取消,它会把我带到 401 页面。我找到的解决方案是从 manager/WEB-INF 中的 web.xml 中删除安全性,但这既不安全也不是好事。任何想法表示赞赏!

tomcat-users.xml:

<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="admin, manager-gui, manager-status, admin-gui"/>
</tomcat-users>

webapps/manager/META-INF/context.xml:

<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
       allow="\d+\.\d+\.\d+\.\d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter$LruCache(?:$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

conf/{引擎}/{主机}/manager.xml:

<Context privileged="true" antiResourceLocking="false"
     docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
       allow="^.*$" />
</Context>

这一切都在 docker 图像中运行。当我 bash 里面所有需要的文件都在那里。有没有我错过的配置,我需要删除的东西?我试过在 /manager/META-INF/context.xml 中注释掉 Valve 但也没有成功。感谢您的观看!

是的,我是对的。我在名为 Realmserver.xml 中缺少 tomcat-users.xml 的钩子。

您可以将其添加到 EngineHost 元素中,如下所示:

        <Engine>
            <!-- THIS GUY --> 
           <Realm className="org.apache.catalina.realm.MemoryRealm" />
                <Host ...>
                <!-- OR ADD IT HERE  DONT DO BOTH--> 
                    <Realm className="org.apache.catalina.realm.MemoryRealm" />
                    ...
                </Host>
            </Engine>

Hopefully some poor soul stumbles upon this and it helps.