Java « Запрет доступа к определенным URL в Tomcat6

Здравствуйте. Хочу заблокировать доступ к определенному типу УРЛов на сайте. Блокировка по IP или паролю (base authentification). Сервер - томкат. Пробовал задать security-role в web.xml приложения:

/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .xml.geshi_code {font-family:monospace;} .xml.geshi_code .imp {font-weight: bold; color: red;} .xml.geshi_code .es0 {color: #000099; font-weight: bold;} .xml.geshi_code .br0 {color: #66cc66;} .xml.geshi_code .sy0 {color: #66cc66;} .xml.geshi_code .st0 {color: #ff0000;} .xml.geshi_code .sc-1 {color: #808080; font-style: italic;} .xml.geshi_code .sc0 {color: #00bbdd;} .xml.geshi_code .sc1 {color: #ddbb00;} .xml.geshi_code .sc2 {color: #339933;} .xml.geshi_code .sc3 {color: #009900;} .xml.geshi_code .re0 {color: #000066;} .xml.geshi_code .re1 {color: #000000; font-weight: bold;} .xml.geshi_code .re2 {color: #000000; font-weight: bold;} .xml.geshi_code span.xtra { display:block; }

   <security-role>
        <description>Secured-Wayback-Access</description>
        <role-name>wayback</role-name>
    </security-role>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Secured-Wayback</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>wayback</role-name>
        </auth-constraint>
    </security-constraint>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>Secured-Wayback</realm-name>
    </login-config>
 

Проблема в том что формат url-pattern не может обрабатывать сложные паттерны типа /*/something*/*.
Например, мне нужно заблокировать такие урлы:
/abc/1/url1
/abc/2912/url1
/abc/31312/url1
Но url-pattern /abc/*/url1/* не соответствует формату. Как мне добится желаемого результата?

1 ответов


Можно ограничить доступ на уровне сервлета, реализовав соответствующий фильтр.
вот здесь можно посмотреть как это делается.