2011-01-31 167 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。