各位达人好:
   
   请问我如何在tomcat中配置 某个应用只运行内网访问。   或者:如何配置应用中的某个目录只允许内网访问。   偶是一菜鸟。请各位达人帮忙。谢谢谢谢!!

解决方案 »

  1.   

    和TOMCAT没关系的...应该在程序里控制或设置相关权限 代码可以做到
      

  2.   

    用防火墙来设置,这样安全有保障。如果是linux,就配置一下iptables。
      

  3.   

    不会吧。。若是已经用路由设网关了外网能访问内网了。。若在个别功能设置不能访问,除非别人的ip与你内网ip不再一个地址段,个别功能处的访问设为你内网ip才能访问就可以了。。至于有没有固有的工具就不知道了。。
      

  4.   

    这种跟服务器没有关系,只跟你的程序有关系,你配置一个过虑器不就可以了嘛,存在访问你不想让访问的目录的Url你让它重定向到首页就可以了撒
      

  5.   

    //java代码
    package filter;
    import java.io.IOException;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import domain.Admin;
    import domain.Governor;
    import domain.Staff;
    /**
     * 用过滤器控制用户的访问权限
     * @author 何博
     *
     */
    public class RightsFilter implements Filter {
     
     public void destroy() {
     
    }
     
     public void doFilter(ServletRequest sreq, ServletResponse sres,
       FilterChain chain) throws IOException, ServletException {
      
        // 获取uri地址
        HttpServletRequest request = (HttpServletRequest) sreq;
        HttpServletResponse response = (HttpServletResponse)sres;    // 获取请求的uri,如“/cattsoft/jsp/admin/admin.jsp”
        String uri = request.getRequestURI();
        String ctx = request.getContextPath();
        uri = uri.substring(ctx.length());
        System.out.println("uri=="+uri);   // 判断admin(系统管理员)前面是Action请求,后面是页面
       if (uri.startsWith("/admin.do") || uri.startsWith("/jsp/admin/")) {
          Admin admin = (Admin) request.getSession().getAttribute("admin");
         if (admin == null) {
             request.setAttribute("message", "对不起,您没有该权限");
             request.getRequestDispatcher("/jsp/login.jsp").forward(sreq,sres);
             return;
         }
       }  // 判断governor(主管)
      if (uri.startsWith("/governor.do") || uri.startsWith("/jsp/governor/")) {
         Governor governor = (Governor) request.getSession().getAttribute("governor");
         if (governor == null) {
            request.setAttribute("message", "对不起,您没有该权限");
            request.getRequestDispatcher("/jsp/login.jsp").forward(sreq,sres);
            return;
         }
      }
      
      // 判断staff(员工)
      if (uri.startsWith("/staff.do") || uri.startsWith("/jsp/staff/")) {
         Staff staff = (Staff) request.getSession().getAttribute("staff");
       if (staff == null) {
          request.setAttribute("message", "对不起,您没有该权限");
          request.getRequestDispatcher("/jsp/login.jsp").forward(sreq,sres);
          return;
       }
      }
      chain.doFilter(request, response);
     }
     
     public void init(FilterConfig arg0) throws ServletException {
     
     }}
    //////////////////////////////////////////////////////////////////
    //web.xml里的配置
     <filter>
        <filter-name>RightsFilter</filter-name>
        <filter-class>filter.RightsFilter</filter-class>
     </filter>
     
    //对请求admin文件夹下面的jsp页面进行过滤
    <filter-mapping>
        <filter-name>RightsFilter</filter-name>
        <url-pattern>/jsp/admin/*</url-pattern>
     </filter-mapping>
     
    //对请求governor文件夹下面的jsp页面进行过滤
     <filter-mapping>
        <filter-name>RightsFilter</filter-name>
        <url-pattern>/jsp/governor/*</url-pattern>
     </filter-mapping>
     
    //对请求staff文件夹下面的jsp页面进行过滤
     <filter-mapping>
        <filter-name>RightsFilter</filter-name>
        <url-pattern>/jsp/staff/*</url-pattern>
     </filter-mapping>
     
    //对请求admin.do进行过滤。例如:admin.do?method=list1
     <filter-mapping>
        <filter-name>RightsFilter</filter-name>
        <url-pattern>/admin.do</url-pattern>
     </filter-mapping>
     
     <filter-mapping>
        <filter-name>RightsFilter</filter-name>
        <url-pattern>/governor.do</url-pattern>
     </filter-mapping>
     
     <filter-mapping>
       <filter-name>RightsFilter</filter-name>
       <url-pattern>/staff.do</url-pattern>
     </filter-mapping>
     
    网上找的,没细看看,你自己看看,网上查查就会做了,很简单的
      

  6.   

    修改server.xml文件,在<Context>标记内部加入(如果没有context,需要加入配置):<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="允许的ip" deny="拒绝的Ip"/>ip地址可以用*号,如192.168.1.*