How to restrict access by IP to specific dynamic URLs (only 1-2 pages) in tomcat or url-pattern format










1















Please do not close this question as answered, because all links I found like this and they are about how to block single static URL, but not a dynamic.



I have a Tomcat 7 and I have an application something like http://server/myapp/.
I need to restrict some pages inside this application for some IPs. for example, everything should work fine for all IPs, except these 2 pages



http://server/myapp/admin/appversion/index.jsp
http://server/myapp/admin/appversion/app_parameters.jsp



for static URL's it works perfectly if I add the filter to server's web.xml (...apache-tomcat-7confweb.xml) like this



<filter>
<filter-name>IPFilter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>127.d+.d+.d+</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>IPFilter</filter-name>
<url-pattern>/admin/appversion/index.jsp</url-pattern>
<url-pattern>/admin/appversion/app_parameters.jsp</url-pattern>
</filter-mapping>


The problem comes when I need to do dynamic (or regexp) filtering. For example, every time I have a new version of application this part of URL (appversion) changes.



/admin/appversion/app_parameters.jsp



real url today looks like this /admin/1.0/app_parameters.jsp in 1 month it will be /admin/1.1/app_parameters.jsp etc. and I do not want to change it every time when I have an update. Also it might be different for dev, test and production environment and I do not want to support 3 different configurations and change for every update.



If I try to do it like this



<url-pattern>/admin/*/app_parameters.jsp</url-pattern>


then it does not work. and if I read tomcat official documentation there is no explanation how this works. There are some examples like /*, but it works only for every page.



My question:
Is there any way how to configure tomcat in a standard way and restrict some pages dynamically? One of the solutions can be to find full syntax of url-pattern and check if proper regexp is supported. Maybe using subfilters/nested filters etc. Or there is only one solution to create my custom java filter based on org.apache.catalina.filters.RemoteAddrFilter where I can apply proper regular expression to the URL?



P.S. one might think why I have admin pages inside the main application and I just should modify my app and move it to another app, but the problem is, that this application is a standard application from some vendor. I did not create this application by myself. If I change this application by my self, I will lose a support for it and I already checked, it is not easy to move this 2 pages. These 2 pages have a lot of dependencies from other parts of the application. Of course, I will create a ticket for this vendor separately, but it will be good to get an independent solution (Plan B) in case vendor cannot provide something.



UPDATE 1



I have checked tomcat source codes and looks like only 4 patterns are supported in element. This is the code from org.apache.catalina.core.ApplicationFilterFactory



private boolean matchFiltersURL(String testPath, String requestPath) 
if (testPath == null)
return false;

if (testPath.equals(requestPath))
return true;


if (testPath.equals("/*"))
return true;
if (testPath.endsWith("/*"))
if (testPath.regionMatches(0, requestPath, 0, testPath.length() - 2))
if (requestPath.length() == testPath.length() - 2)
return true;
if ('/' == requestPath.charAt(testPath.length() - 2))
return true;


return false;


if (testPath.startsWith("*."))
int slash = requestPath.lastIndexOf('/');
int period = requestPath.lastIndexOf('.');
if ((slash >= 0) && (period > slash) && (period != requestPath.length() - 1) && (requestPath.length() - period == testPath.length() - 1))

return testPath.regionMatches(2, requestPath, period + 1, testPath.length() - 2);



return false;



briefly what is supported



 1. exact URL match
2. <url-pattern>/*</url-pattern> means match for all URLs.
3. <url-pattern>/some/path/*</url-pattern> means match for all URLs starting with "/some/path". It support /* only at the end of the URL.
4. <url-pattern>*.ext</url-pattern> means match for any path but with specific extension.
5. All others are not supported (examples what is not supported: /fld1/*/fld2, /fld1/*.jsp, etc


some examples which can help to understand it



matchFiltersURL("", "/fld1/fld2/mypage.jsp")
(boolean) false

matchFiltersURL("*", "/fld1/fld2/mypage.jsp")
(boolean) false

matchFiltersURL("/*", "/fld1/fld2/mypage.jsp")
(boolean) true

matchFiltersURL("/fld1/*", "/fld1/fld2/mypage.jsp")
(boolean) true

matchFiltersURL("/fld1*", "/fld1/fld2/mypage.jsp")
(boolean) false

matchFiltersURL("/fld1/fld2/*", "/fld1/fld2/mypage.jsp")
(boolean) true

matchFiltersURL("/fld1/*/mypage.jsp", "/fld1/fld2/mypage.jsp")
(boolean) false

matchFiltersURL("*./fld1/fld2/mypage.jsp", "/fld1/fld2/mypage.jsp")
(boolean) false

matchFiltersURL("*./fld1/fld2/mypagejs", "./fld1/fld2/mypagejsp")

matchFiltersURL("*.jsp", "/.jsp");
(boolean) true

matchFiltersURL("*.xxxx", "/.xxxx");
(boolean) true

matchFiltersURL("*./fld1/xxxx", "/fld1/.xxxx");
(boolean) false

matchFiltersURL("*./fld1/.xxxx", "/fld1/.xxxx");
(boolean) false

matchFiltersURL("/fld1/fld2/*.jsp", "/fld1/fld2/mypage.jsp")
(boolean) false

matchFiltersURL("*./fld1/fld2/*", "/fld1/fld2/mypage.jsp")
(boolean) false


As result of this, it is clearly not possible to use for dynamic filtering. The only possibility I can see now is a custom filter or nested filters.










share|improve this question




























    1















    Please do not close this question as answered, because all links I found like this and they are about how to block single static URL, but not a dynamic.



    I have a Tomcat 7 and I have an application something like http://server/myapp/.
    I need to restrict some pages inside this application for some IPs. for example, everything should work fine for all IPs, except these 2 pages



    http://server/myapp/admin/appversion/index.jsp
    http://server/myapp/admin/appversion/app_parameters.jsp



    for static URL's it works perfectly if I add the filter to server's web.xml (...apache-tomcat-7confweb.xml) like this



    <filter>
    <filter-name>IPFilter</filter-name>
    <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
    <init-param>
    <param-name>allow</param-name>
    <param-value>127.d+.d+.d+</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>IPFilter</filter-name>
    <url-pattern>/admin/appversion/index.jsp</url-pattern>
    <url-pattern>/admin/appversion/app_parameters.jsp</url-pattern>
    </filter-mapping>


    The problem comes when I need to do dynamic (or regexp) filtering. For example, every time I have a new version of application this part of URL (appversion) changes.



    /admin/appversion/app_parameters.jsp



    real url today looks like this /admin/1.0/app_parameters.jsp in 1 month it will be /admin/1.1/app_parameters.jsp etc. and I do not want to change it every time when I have an update. Also it might be different for dev, test and production environment and I do not want to support 3 different configurations and change for every update.



    If I try to do it like this



    <url-pattern>/admin/*/app_parameters.jsp</url-pattern>


    then it does not work. and if I read tomcat official documentation there is no explanation how this works. There are some examples like /*, but it works only for every page.



    My question:
    Is there any way how to configure tomcat in a standard way and restrict some pages dynamically? One of the solutions can be to find full syntax of url-pattern and check if proper regexp is supported. Maybe using subfilters/nested filters etc. Or there is only one solution to create my custom java filter based on org.apache.catalina.filters.RemoteAddrFilter where I can apply proper regular expression to the URL?



    P.S. one might think why I have admin pages inside the main application and I just should modify my app and move it to another app, but the problem is, that this application is a standard application from some vendor. I did not create this application by myself. If I change this application by my self, I will lose a support for it and I already checked, it is not easy to move this 2 pages. These 2 pages have a lot of dependencies from other parts of the application. Of course, I will create a ticket for this vendor separately, but it will be good to get an independent solution (Plan B) in case vendor cannot provide something.



    UPDATE 1



    I have checked tomcat source codes and looks like only 4 patterns are supported in element. This is the code from org.apache.catalina.core.ApplicationFilterFactory



    private boolean matchFiltersURL(String testPath, String requestPath) 
    if (testPath == null)
    return false;

    if (testPath.equals(requestPath))
    return true;


    if (testPath.equals("/*"))
    return true;
    if (testPath.endsWith("/*"))
    if (testPath.regionMatches(0, requestPath, 0, testPath.length() - 2))
    if (requestPath.length() == testPath.length() - 2)
    return true;
    if ('/' == requestPath.charAt(testPath.length() - 2))
    return true;


    return false;


    if (testPath.startsWith("*."))
    int slash = requestPath.lastIndexOf('/');
    int period = requestPath.lastIndexOf('.');
    if ((slash >= 0) && (period > slash) && (period != requestPath.length() - 1) && (requestPath.length() - period == testPath.length() - 1))

    return testPath.regionMatches(2, requestPath, period + 1, testPath.length() - 2);



    return false;



    briefly what is supported



     1. exact URL match
    2. <url-pattern>/*</url-pattern> means match for all URLs.
    3. <url-pattern>/some/path/*</url-pattern> means match for all URLs starting with "/some/path". It support /* only at the end of the URL.
    4. <url-pattern>*.ext</url-pattern> means match for any path but with specific extension.
    5. All others are not supported (examples what is not supported: /fld1/*/fld2, /fld1/*.jsp, etc


    some examples which can help to understand it



    matchFiltersURL("", "/fld1/fld2/mypage.jsp")
    (boolean) false

    matchFiltersURL("*", "/fld1/fld2/mypage.jsp")
    (boolean) false

    matchFiltersURL("/*", "/fld1/fld2/mypage.jsp")
    (boolean) true

    matchFiltersURL("/fld1/*", "/fld1/fld2/mypage.jsp")
    (boolean) true

    matchFiltersURL("/fld1*", "/fld1/fld2/mypage.jsp")
    (boolean) false

    matchFiltersURL("/fld1/fld2/*", "/fld1/fld2/mypage.jsp")
    (boolean) true

    matchFiltersURL("/fld1/*/mypage.jsp", "/fld1/fld2/mypage.jsp")
    (boolean) false

    matchFiltersURL("*./fld1/fld2/mypage.jsp", "/fld1/fld2/mypage.jsp")
    (boolean) false

    matchFiltersURL("*./fld1/fld2/mypagejs", "./fld1/fld2/mypagejsp")

    matchFiltersURL("*.jsp", "/.jsp");
    (boolean) true

    matchFiltersURL("*.xxxx", "/.xxxx");
    (boolean) true

    matchFiltersURL("*./fld1/xxxx", "/fld1/.xxxx");
    (boolean) false

    matchFiltersURL("*./fld1/.xxxx", "/fld1/.xxxx");
    (boolean) false

    matchFiltersURL("/fld1/fld2/*.jsp", "/fld1/fld2/mypage.jsp")
    (boolean) false

    matchFiltersURL("*./fld1/fld2/*", "/fld1/fld2/mypage.jsp")
    (boolean) false


    As result of this, it is clearly not possible to use for dynamic filtering. The only possibility I can see now is a custom filter or nested filters.










    share|improve this question


























      1












      1








      1








      Please do not close this question as answered, because all links I found like this and they are about how to block single static URL, but not a dynamic.



      I have a Tomcat 7 and I have an application something like http://server/myapp/.
      I need to restrict some pages inside this application for some IPs. for example, everything should work fine for all IPs, except these 2 pages



      http://server/myapp/admin/appversion/index.jsp
      http://server/myapp/admin/appversion/app_parameters.jsp



      for static URL's it works perfectly if I add the filter to server's web.xml (...apache-tomcat-7confweb.xml) like this



      <filter>
      <filter-name>IPFilter</filter-name>
      <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
      <init-param>
      <param-name>allow</param-name>
      <param-value>127.d+.d+.d+</param-value>
      </init-param>
      </filter>
      <filter-mapping>
      <filter-name>IPFilter</filter-name>
      <url-pattern>/admin/appversion/index.jsp</url-pattern>
      <url-pattern>/admin/appversion/app_parameters.jsp</url-pattern>
      </filter-mapping>


      The problem comes when I need to do dynamic (or regexp) filtering. For example, every time I have a new version of application this part of URL (appversion) changes.



      /admin/appversion/app_parameters.jsp



      real url today looks like this /admin/1.0/app_parameters.jsp in 1 month it will be /admin/1.1/app_parameters.jsp etc. and I do not want to change it every time when I have an update. Also it might be different for dev, test and production environment and I do not want to support 3 different configurations and change for every update.



      If I try to do it like this



      <url-pattern>/admin/*/app_parameters.jsp</url-pattern>


      then it does not work. and if I read tomcat official documentation there is no explanation how this works. There are some examples like /*, but it works only for every page.



      My question:
      Is there any way how to configure tomcat in a standard way and restrict some pages dynamically? One of the solutions can be to find full syntax of url-pattern and check if proper regexp is supported. Maybe using subfilters/nested filters etc. Or there is only one solution to create my custom java filter based on org.apache.catalina.filters.RemoteAddrFilter where I can apply proper regular expression to the URL?



      P.S. one might think why I have admin pages inside the main application and I just should modify my app and move it to another app, but the problem is, that this application is a standard application from some vendor. I did not create this application by myself. If I change this application by my self, I will lose a support for it and I already checked, it is not easy to move this 2 pages. These 2 pages have a lot of dependencies from other parts of the application. Of course, I will create a ticket for this vendor separately, but it will be good to get an independent solution (Plan B) in case vendor cannot provide something.



      UPDATE 1



      I have checked tomcat source codes and looks like only 4 patterns are supported in element. This is the code from org.apache.catalina.core.ApplicationFilterFactory



      private boolean matchFiltersURL(String testPath, String requestPath) 
      if (testPath == null)
      return false;

      if (testPath.equals(requestPath))
      return true;


      if (testPath.equals("/*"))
      return true;
      if (testPath.endsWith("/*"))
      if (testPath.regionMatches(0, requestPath, 0, testPath.length() - 2))
      if (requestPath.length() == testPath.length() - 2)
      return true;
      if ('/' == requestPath.charAt(testPath.length() - 2))
      return true;


      return false;


      if (testPath.startsWith("*."))
      int slash = requestPath.lastIndexOf('/');
      int period = requestPath.lastIndexOf('.');
      if ((slash >= 0) && (period > slash) && (period != requestPath.length() - 1) && (requestPath.length() - period == testPath.length() - 1))

      return testPath.regionMatches(2, requestPath, period + 1, testPath.length() - 2);



      return false;



      briefly what is supported



       1. exact URL match
      2. <url-pattern>/*</url-pattern> means match for all URLs.
      3. <url-pattern>/some/path/*</url-pattern> means match for all URLs starting with "/some/path". It support /* only at the end of the URL.
      4. <url-pattern>*.ext</url-pattern> means match for any path but with specific extension.
      5. All others are not supported (examples what is not supported: /fld1/*/fld2, /fld1/*.jsp, etc


      some examples which can help to understand it



      matchFiltersURL("", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("*", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("/*", "/fld1/fld2/mypage.jsp")
      (boolean) true

      matchFiltersURL("/fld1/*", "/fld1/fld2/mypage.jsp")
      (boolean) true

      matchFiltersURL("/fld1*", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("/fld1/fld2/*", "/fld1/fld2/mypage.jsp")
      (boolean) true

      matchFiltersURL("/fld1/*/mypage.jsp", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("*./fld1/fld2/mypage.jsp", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("*./fld1/fld2/mypagejs", "./fld1/fld2/mypagejsp")

      matchFiltersURL("*.jsp", "/.jsp");
      (boolean) true

      matchFiltersURL("*.xxxx", "/.xxxx");
      (boolean) true

      matchFiltersURL("*./fld1/xxxx", "/fld1/.xxxx");
      (boolean) false

      matchFiltersURL("*./fld1/.xxxx", "/fld1/.xxxx");
      (boolean) false

      matchFiltersURL("/fld1/fld2/*.jsp", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("*./fld1/fld2/*", "/fld1/fld2/mypage.jsp")
      (boolean) false


      As result of this, it is clearly not possible to use for dynamic filtering. The only possibility I can see now is a custom filter or nested filters.










      share|improve this question
















      Please do not close this question as answered, because all links I found like this and they are about how to block single static URL, but not a dynamic.



      I have a Tomcat 7 and I have an application something like http://server/myapp/.
      I need to restrict some pages inside this application for some IPs. for example, everything should work fine for all IPs, except these 2 pages



      http://server/myapp/admin/appversion/index.jsp
      http://server/myapp/admin/appversion/app_parameters.jsp



      for static URL's it works perfectly if I add the filter to server's web.xml (...apache-tomcat-7confweb.xml) like this



      <filter>
      <filter-name>IPFilter</filter-name>
      <filter-class>org.apache.catalina.filters.RemoteAddrFilter</filter-class>
      <init-param>
      <param-name>allow</param-name>
      <param-value>127.d+.d+.d+</param-value>
      </init-param>
      </filter>
      <filter-mapping>
      <filter-name>IPFilter</filter-name>
      <url-pattern>/admin/appversion/index.jsp</url-pattern>
      <url-pattern>/admin/appversion/app_parameters.jsp</url-pattern>
      </filter-mapping>


      The problem comes when I need to do dynamic (or regexp) filtering. For example, every time I have a new version of application this part of URL (appversion) changes.



      /admin/appversion/app_parameters.jsp



      real url today looks like this /admin/1.0/app_parameters.jsp in 1 month it will be /admin/1.1/app_parameters.jsp etc. and I do not want to change it every time when I have an update. Also it might be different for dev, test and production environment and I do not want to support 3 different configurations and change for every update.



      If I try to do it like this



      <url-pattern>/admin/*/app_parameters.jsp</url-pattern>


      then it does not work. and if I read tomcat official documentation there is no explanation how this works. There are some examples like /*, but it works only for every page.



      My question:
      Is there any way how to configure tomcat in a standard way and restrict some pages dynamically? One of the solutions can be to find full syntax of url-pattern and check if proper regexp is supported. Maybe using subfilters/nested filters etc. Or there is only one solution to create my custom java filter based on org.apache.catalina.filters.RemoteAddrFilter where I can apply proper regular expression to the URL?



      P.S. one might think why I have admin pages inside the main application and I just should modify my app and move it to another app, but the problem is, that this application is a standard application from some vendor. I did not create this application by myself. If I change this application by my self, I will lose a support for it and I already checked, it is not easy to move this 2 pages. These 2 pages have a lot of dependencies from other parts of the application. Of course, I will create a ticket for this vendor separately, but it will be good to get an independent solution (Plan B) in case vendor cannot provide something.



      UPDATE 1



      I have checked tomcat source codes and looks like only 4 patterns are supported in element. This is the code from org.apache.catalina.core.ApplicationFilterFactory



      private boolean matchFiltersURL(String testPath, String requestPath) 
      if (testPath == null)
      return false;

      if (testPath.equals(requestPath))
      return true;


      if (testPath.equals("/*"))
      return true;
      if (testPath.endsWith("/*"))
      if (testPath.regionMatches(0, requestPath, 0, testPath.length() - 2))
      if (requestPath.length() == testPath.length() - 2)
      return true;
      if ('/' == requestPath.charAt(testPath.length() - 2))
      return true;


      return false;


      if (testPath.startsWith("*."))
      int slash = requestPath.lastIndexOf('/');
      int period = requestPath.lastIndexOf('.');
      if ((slash >= 0) && (period > slash) && (period != requestPath.length() - 1) && (requestPath.length() - period == testPath.length() - 1))

      return testPath.regionMatches(2, requestPath, period + 1, testPath.length() - 2);



      return false;



      briefly what is supported



       1. exact URL match
      2. <url-pattern>/*</url-pattern> means match for all URLs.
      3. <url-pattern>/some/path/*</url-pattern> means match for all URLs starting with "/some/path". It support /* only at the end of the URL.
      4. <url-pattern>*.ext</url-pattern> means match for any path but with specific extension.
      5. All others are not supported (examples what is not supported: /fld1/*/fld2, /fld1/*.jsp, etc


      some examples which can help to understand it



      matchFiltersURL("", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("*", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("/*", "/fld1/fld2/mypage.jsp")
      (boolean) true

      matchFiltersURL("/fld1/*", "/fld1/fld2/mypage.jsp")
      (boolean) true

      matchFiltersURL("/fld1*", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("/fld1/fld2/*", "/fld1/fld2/mypage.jsp")
      (boolean) true

      matchFiltersURL("/fld1/*/mypage.jsp", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("*./fld1/fld2/mypage.jsp", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("*./fld1/fld2/mypagejs", "./fld1/fld2/mypagejsp")

      matchFiltersURL("*.jsp", "/.jsp");
      (boolean) true

      matchFiltersURL("*.xxxx", "/.xxxx");
      (boolean) true

      matchFiltersURL("*./fld1/xxxx", "/fld1/.xxxx");
      (boolean) false

      matchFiltersURL("*./fld1/.xxxx", "/fld1/.xxxx");
      (boolean) false

      matchFiltersURL("/fld1/fld2/*.jsp", "/fld1/fld2/mypage.jsp")
      (boolean) false

      matchFiltersURL("*./fld1/fld2/*", "/fld1/fld2/mypage.jsp")
      (boolean) false


      As result of this, it is clearly not possible to use for dynamic filtering. The only possibility I can see now is a custom filter or nested filters.







      java tomcat servlet-filters restriction






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 13 '18 at 15:05







      Zlelik

















      asked Nov 12 '18 at 11:28









      ZlelikZlelik

      264311




      264311






















          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53261211%2fhow-to-restrict-access-by-ip-to-specific-dynamic-urls-only-1-2-pages-in-tomcat%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53261211%2fhow-to-restrict-access-by-ip-to-specific-dynamic-urls-only-1-2-pages-in-tomcat%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Use pre created SQLite database for Android project in kotlin

          Darth Vader #20

          Ondo