Tomcat Connector SecretRequired
Apache Tomcat 8.5.x 이후 버전부터는 AJP Connector 의 secretRequired 기본값이 true 로 변경되었습니다. 이 기능에 대해서 이해하기 위해서는 secret 지시자의 역할에 대해 알아야 합니다.
secret이 비밀 키워드를 가진 작업자의 요청 만 수락됩니다. 기본값은null입니다.secretRequired가 명시적으로false로 구성 되지 않은 경우 이 속성은 널이 아니며 길이가 0 이 아닌 값으로 지정해야합니다. 이 속성이 널이 아니고 길이가 0이 아닌 값으로 구성된 경우worker는 일치하는 값을 제공 해야 합니다. 그렇지 않으면secretRequired설정에 관계없이 요청이 거부됩니다.
secretRequired이 속성이true인 경우 비밀 속성이 널이 아니고 길이가 0이 아닌 값으로 구성된 경우에만 AJP 커넥터가 시작됩니다. 이 속성 은 AJP 커넥터를 시작하기 위해 비밀 속성을 지정 해야하는지 여부 만 제어합니다. 기본값은true입니다. 이 속성은 커넥터가 신뢰할 수 있는 네트워크에서 사용될 때만false설정해야 합니다.
즉 secretRequired=true 인 경우 secret 값을 설정해야하며 WEB-WAS간에 서로 secret에 정의된 값이 일치하는 경우에만 연결을 수락합니다.
적용방법
AJP Connector 설정에 secret=VALUE 형태의 값을 넣어준다.
<Connector port="8009"
secretRequired="true" <- 8.5.x 버전 이후로는 기본값이 true 이므로 생략 가능
secret="itismysecretkey" <- secret 값 설정
protocol="AJP/1.3"
redirectPort="8443" />
이렇게 설정 한 후 웹서버의 workers.properties 설정에서 아래와 같이 동일한 secret값을 설정해주도록 한다.
worker.balancer.balance_workers=node11 worker.node11.reference=worker.template worker.node11.host=127.0.0.1 worker.node11.port=8009 worker.node11.activation=A worker.node11.secret=itismysecretkey <- secret 값 설정