2011-01-31 160 views
3

如何限制對特定URL(它是Tomcat應用程序服務器)的訪問?例如http://localhost:8081/application不能由用戶除指定的IP訪問(即調用服務)限制對特定URL(Apache Tomcat)的訪問

+0

這個相關的問題可能有助於http://stackoverflow.com/questions/593922/ip-restriction-with-htaccess – Robb 2011-01-31 11:37:05

+0

這可以工作,但由於我們談論的Tomcat,你需要通過代理像這樣的Apache:http://tomcat.apache.org/connectors-doc-archive/jk2/proxy.html,也可以參考http://httpd.apache.org/docs/1.3/mod/mod_proxy.html#access – 2011-01-31 12:04:15

回答

6

報價:

遠程地址過濾,org.apache.catalina.valves.RemoteAddrValve,讓您比較請求客戶端的IP地址與一個或多個正則表達式進行比較,以根據比較結果允許或阻止請求繼續。遠程地址過濾器可以與Tomcat引擎,主機或上下文容器相關聯。 org.apache.catalina.valves.RemoteAddrValve。

http://www.oxxus.net/tutorials/tomcat/tomcat-valve.htm

所以,你需要沿着

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="<your-ip-here>"/> 

可能的值線的東西,看到

http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Remote_Address_Filter

您應該能夠設置此在您的應用程序的WEB-INF/web.xml中,請參閱

http://oreilly.com/java/archive/tomcat.html

1

轉到以下路徑:C:\ Program Files文件\ Apache軟件基金會\ Tomcat的6.0 \的conf \卡塔利娜\本地主機\

在這個路徑找到 「manager.xml」 文件。

編輯 「manager.xml」 文件中,內容如下:

<Context path="/manager" debug="0" privileged="true"> 

     <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1,10.100.1.2"/> 

     <!-- Link to the user database we will get roles from 
     <ResourceLink name="users" global="UserDatabase" type="org.apache.catalina.UserDatabase"/> 
     --> 

</Context> 

保存並運行服務器。你說對了。

注:

  • 127.0.0.1意味着你的系統IP
  • 10.100.1.2 - 這是好友IP。