Запретить доступ к определенным веб-приложениям в Tomcat6 - PullRequest
0 голосов
/ 27 января 2010

Я спросил об этом по вине сервера, но на самом деле не очень повезло, надеясь, что кто-то здесь сможет дать какой-нибудь совет ...

У меня сервер Tomcat 6 работает нормально. У меня внешний доступ работает. Я хотел знать, как запретить кому-либо видеть определенные веб-приложения, например, мне не нужен внешний доступ к странице ROOT tomcat. Как я могу предотвратить некоторые веб-приложения, оставляя другие веб-приложения видимыми для внешних пользователей?

Вот что я пробовал: Это отрицает все, даже 127.0.0.1 запросов

<Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">

    <Context path="/examples" docBase="" >
       <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1"/>
    </Context>
  </Host>

Это тоже все отрицает.

<Host name="localhost"  appBase="webapps"
                    unpackWARs="true" autoDeploy="true"
                    xmlValidation="false" xmlNamespaceAware="false">

        <Context path="/examples" docBase="" >
           <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="*"/>
        </Context>
      </Host>

В основном я пытаюсь запретить доступ к странице ROOT по умолчанию для tomcat и к примеру приложений ....

Есть идеи?

Ответы [ 4 ]

2 голосов
/ 27 января 2010

Вы не можете использовать подстановочный знак для атрибута allow ... с другой стороны, вы можете использовать его для атрибута deny.

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="*"/>

Вот почему я получал 403 с вышеуказанным кодом.

Также еще один способ справиться с этим, я создал jsp, который перенаправлял трафик туда, куда я хотел.

1 голос
/ 26 декабря 2011

Значение свойства allow должно быть определено с помощью обратной косой черты, чтобы экранировать точки разрешенного IP-адреса:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1"/>
1 голос
/ 27 января 2010

взгляните на документацию. http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html

То, что у вас есть, кажется правильным. он говорит: «Если указан этот атрибут, удаленный адрес ДОЛЖЕН совпадать, чтобы этот запрос был принят».

Одна вещь, на которую вы могли бы обратить внимание, это проверить, действительно ли 127.0.0.1 является правильным IP. Возможно, вы на самом деле используете фактический IP-адрес коробки. попробуйте добавить этот IP-адрес после локального.

0 голосов
/ 02 мая 2012

Это может быть IPv6 проблема. Вот как выглядит мой tomcat6/Catalina/myApp.xml:

<!--<?xml version="1.0" encoding="UTF-8"?> -->
<Context path="/myApp" privileged="true">
     <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1,0:0:0:0:0:0:0:1"/>
</Context>

Это может быть проверено следующим образом, что даст 403, если вам отказано в доступе

wget --inet4-only http://localhost:8080/myApp
...