다른 호스트에서 Tomcat Manager 앱에 액세스
원격 서버에 tomcat 9를 설치했고 시작 후 정상적으로 작동했습니다. http : // host_name : port_num에 액세스 하여 tomcat hello 페이지를 볼 수 있습니다 . 그러나 배포 된 앱을보기 위해 관리자 앱을 열려고하면 403 액세스가 거부되고 이미 다음과 같이 tomcat 사용자 xml에 역할을 추가합니다.
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="user" password="password" roles="admin,manager,manager-gui"/>
내가 본 오류 메시지는 다음과 같습니다.
기본적으로 호스트 관리자는 Tomcat과 동일한 시스템에서 실행되는 브라우저에서만 액세스 할 수 있습니다. 이 제한을 수정하려면 호스트 관리자의 context.xml 파일을 편집해야합니다.
context.xml 파일을 변경하고 관리자 앱에 액세스하려면 어떻게해야합니까?
배포 된 각 웹앱에는 다음 위치에있는 context.xml
파일이 있습니다.
$CATALINA_BASE/conf/[enginename]/[hostname]
(conf/Catalina/localhost by default)
웹앱과 이름 manager.xml
이 같습니다 ( 이 경우). 파일이 없으면 기본값이 사용됩니다.
따라서 파일을 만들고 conf/Catalina/localhost/manager.xml
원격 액세스를 허용 할 규칙을 지정해야합니다. 예를 들어의 다음 내용은 manager.xml
모든 컴퓨터에서 액세스를 허용합니다.
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
Valve
요소 의 허용 속성은 연결 호스트의 IP 주소와 일치하는 정규식입니다. 다른 Valve
클래스는 다른 규칙을 제공합니다 (예 : RemoteHostValve
호스트 이름 일치).
위의 변경이 완료되면 관리자 URL에 액세스 할 때 인증 대화 상자가 표시되어야합니다. 제공 한 세부 정보를 입력 tomcat-users.xml
하면 관리자에 대한 액세스 권한이 있어야합니다.
Tomcat v8.5.4 이상의 경우 파일 <tomcat>/webapps/manager/META-INF/context.xml
이 조정되었습니다.
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>
이 파일을 변경하여 Valve
:
<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
그 후 브라우저를 새로 고치면 (Tomcat을 다시 시작할 필요가 없음) 관리자 페이지가 표시됩니다.
Following two configuration is working for me.
1 .tomcat-users.xml details
--------------------------------
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="tomcat"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="admin" password="admin" roles="admin-gui"/>
<user username="adminscript" password="adminscrip" roles="admin-script"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
<user username="status" password="status" roles="manager-status"/>
<user username="both" password="both" roles="manager-gui,manager-status"/>
<user username="script" password="script" roles="manager-script"/>
<user username="jmx" password="jmx" roles="manager-jmx"/>
2. context.xml of <tomcat>/webapps/manager/META-INF/context.xml and
<tomcat>/webapps/host-manager/META-INF/context.xml
------------------------------------------------------------------------
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow=".*" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
다른 컴퓨터에서 tomcat 관리자에 액세스하려면 다음 단계를 따라야합니다.
1. 사용자 및 일부 역할로 conf / tomcat-users.xml 파일을 업데이트합니다 .
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
여기서 admin 사용자는 roles = "manager-gui, manager-script, manager-jmx, manager-status"를 할당 합니다 .
2. webapps / manager / META-INF / context.xml 파일 업데이트 (IP 주소 허용) :
기본 구성 :
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
여기 Valve에서는 127. \ d +. \ d +. \ d +로 시작하는 로컬 컴퓨터 IP 만 허용합니다 .
2.a : 특정 IP 허용 :
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|YOUR.IP.ADDRESS.HERE" />
Here you just replace |YOUR.IP.ADDRESS.HERE with your IP address
2.b : Allow all IP:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow=".*" />
Here using allow=".*" you are allowing all IP.
Thanks :)
참고URL : https://stackoverflow.com/questions/36703856/access-tomcat-manager-app-from-different-host
'program story' 카테고리의 다른 글
PHP 스크립트에서 500 내부 서버 오류 오류를 보내는 방법 (0) | 2020.10.25 |
---|---|
jQuery를 사용한 병렬 비동기 Ajax 요청 (0) | 2020.10.25 |
ListView 마지막 요소에 아래쪽 여백 추가 (0) | 2020.10.25 |
pip 연결 실패 : 색인 기본 URL http://pypi.python.org/simple/을 가져올 수 없습니다. (0) | 2020.10.25 |
평신도를위한 Java 8 공급자 및 소비자 설명 (0) | 2020.10.25 |