Tomcat9为多个服务启用管理器页面

Tomcat9为多个服务启用管理器页面

为了启用在端口 8999 上运行的某些 Web 服务的管理器页面,我已将管理器目录从 webapps 复制到端口 8999 的应用程序库,即 webapps2。

管理器页面在端口 8999 上打开正常,但无法使用 tomcat-users.xml 中定义的凭据进行身份验证。

8999 上运行的服务配置完成。

Tomcat 版本 - 9

<Service name="Service8999">

    <Realm className="org.apache.catalina.realm.LockOutRealm">

    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
     resourceName="UserDatabase"/>
    </Realm>


      <Connector port="8999" protocol="org.apache.coyote.http11.Http11NioProtocol"
             maxThreads="150" SSLEnabled="true">
      <SSLHostConfig>
         <Certificate certificateKeystoreFile="conf/keystore_new.jks"
                       certificateKeystorePassword='dvjnvjk8d7sv8sd98'/>
      </SSLHostConfig>
  </Connector>

  <Engine name="Service8999" defaultHost="localhost">
          <Host name="localhost" appBase="Service8999"
              unpackWARs="true" autoDeploy="true"
               xmlValidation="false" xmlNamespaceAware="false">
          </Host>
  </Engine>
</Service>

答案1

由于该页面未显示 HTTP 404,这意味着管理器页面正在运行并工作。

  1. 添加到元素server.xml之后<Listener/><Service/>元素之前(从 default 复制apache-tomcat-9.0.20/conf/server.xml):

    <GlobalNamingResources>
      <!-- Editable user database that can also be used by
           UserDatabaseRealm to authenticate users
      -->
      <Resource name="UserDatabase" auth="Container"
                type="org.apache.catalina.UserDatabase"
                description="User database that can be updated and saved"
                factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                pathname="conf/tomcat-users.xml" />
    </GlobalNamingResources>
    
  2. 您需要添加具有密码和角色的用户manager-gui才能tomcat-users.xml访问该/manager/html页面。

    一个简约的样本tomcat-users.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <tomcat-users xmlns="http://tomcat.apache.org/xml"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
                  version="1.0">
      <user username="admin" password="secret" roles="manager-gui"/>
    </tomcat-users>
    

    配置管理器应用程序访问

答案2

你的server.xml无效。你不能将 a 嵌套<Realm.../>在 a 内<Service... />。您只能将 a 嵌套<Realm.../><Engine.../>, <Host.../>or内<Context.../>

相关内容