IP로 접근제한 할려면 Context안에 설정해주면 된다.
tomcat/conf/Catalina/localhost/solr.xml 파일에 Value 추가한다.
<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" debug="0" docBase="/home/solr/tomcat/webapps/solr" priviledged="true">
<Environment name="solr/home" override="true" type="java.lang.String" value="/search_data/solr/example/solr" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="10\.0\.96\.*|114\.119\.135\.116|114\.119\.145\.146|210\.25\.139\.101" />
</Context>
주의할점은 IP적을 때 . 앞에 \ 붙여 한다. 안 그러면 정규표현식이 되면서 . 는 아무 문자라는 뜻이 된다.
그리고 여러개의 IP를 넣을려면 | 로 구분자를 쓰면 된다.
id, pass 형식으로 접근제할려면
tomcat/conf/tomcat-users.xml 파일에 유저정보 추가하고
<tomcat-users>
<role rolename="solr "/>
<user username="solr" password="1234" roles="solr"/>
</tomcat-users>
tomcat/webapps/solr/WEB-INF/web.xml 에 아래 내용 추가한다.
<web-app>
....
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr Lockdown</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>solr</role-name>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Solr</realm-name>
</login-config>
</web-app>
이부분에서 rolename을 매칭시켜야 한다.