目標:只有指定的主機或IP地址纔可以訪問部署在Tomcat下的應用。
實現所需參數:RemoteHostValve 和RemoteAddrValve
前者用於限制主機名,後者用於限制IP地址。
實現過程:
一、全局設置,對Tomcat下所有應用生效
server.xml中的<Host>和</Host>間添加如下代碼:
限制主機IP地址:
- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
- allow="192.168.1.*" deny=""/>
注:上述代碼表示對Tomcat下所有應用僅允許192.168.1.*網段的主機訪問;
限制主機域名:
- <Valve className="org.apache.catalina.valves.RemoteHostValve"
- allow="*.abc.com" deny=""/>
注:上述代碼表示對Tomcat下所有應用僅允許*.abc.com名稱的主機訪問;
上述兩種方式可以單獨使用,也可以是混合使用。
示例如下:
1、只允許192.168.1.10訪問:
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10" deny=""/>/
2、只允許192.168.1.*網段訪問:
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
3、只允許192.168.1.10、192.168.1.30訪問:
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30" deny=""/>
4、根據主機域名進行限制:
- <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="abc.com" deny=""/>
5、根據主機IP和域名進行限制:
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30,192.168.2.*" deny=""/>
- <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="www.abc.com,*.aaa.com" deny=""/>
二、局部設置,僅對具體的應用生效
server.xml中的<Context>和</Context>間添加如下代碼:
- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
上述代碼表示對Tomcat下定義的單個應用僅允許192.168.1.*網段的主機訪問;
局部設置與全局設置方法類似,這裏不再贅述!