포트 8999에서 실행되는 일부 웹 서비스에 대한 관리자 페이지를 활성화하기 위해 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가 표시되지 않으므로 관리자 페이지가 실행 중이며 작동 중임을 의미합니다.
server.xml
요소 뒤<Listener/>
와 요소 앞에 추가합니다<Service/>
(기본값에서 복사됨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>
이 페이지에 액세스
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
유효하지 않습니다. <Realm.../>
a 내에 a를 중첩할 수 없습니다 <Service... />
. , 또는 <Realm.../>
내에 만 중첩할 수 있습니다 .<Engine.../>
<Host.../>
<Context.../>