KhanTengri
@KhanTengri

Как установить forbidden(HTTP 403 Error) страницу в Jetty?

Не хочу чтобы пользователи могли просматривать списки файлов в директориях css/* js/* img/* etc.


У меня уже есть пара идей на этот счет:

1. Элементарно положить в каждую из вышеперечисленных директорий index.jsp;

2. Назначить фильтр, который будет редиректить на 403.jsp при обращении к корням директорий(css/ js/ img/)


Но мне кажется, что это несколько неправильный подход, потому что кастомные страницы 404, 500 устанавливаются совершенно легко добавлением нескольких строк в web.xml:

<font color="black"><font color="#0000ff">&lt;</font><font color="#800000">error-page</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">error-code</font><font color="#0000ff">&gt;</font>404<font color="#0000ff">&lt;/</font><font color="#800000">error-code</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">location</font><font color="#0000ff">&gt;</font>/404.jsp<font color="#0000ff">&lt;/</font><font color="#800000">location</font><font color="#0000ff">&gt;</font><br/>
<font color="#0000ff">&lt;/</font><font color="#800000">error-page</font><font color="#0000ff">&gt;</font><br/>
<font color="#0000ff">&lt;</font><font color="#800000">error-page</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">error-code</font><font color="#0000ff">&gt;</font>500<font color="#0000ff">&lt;/</font><font color="#800000">error-code</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">location</font><font color="#0000ff">&gt;</font>/500.jsp<font color="#0000ff">&lt;/</font><font color="#800000">location</font><font color="#0000ff">&gt;</font><br/>
<font color="#0000ff">&lt;/</font><font color="#800000">error-page</font><font color="#0000ff">&gt;</font></font><br/>
<br/>
<font color="gray">* This source code was highlighted with <a href="http://virtser.net/blog/post/source-code-highlighter.aspx"><font color="gray">Source Code Highlighter</font></a>.</font>



… а вот 403 незнаю как и сделать.


ЗЫЖ Можно даже шире взять: как вообще установить 403-страницу в servlet-контейнерах? Я не думаю, что Tomcat, Jetty, etc. сильно в этом смысле отличаются…


UPD:


В общем в итоге я сделал так:

<font color="black"><br/>
<br/>
<font color="#0000ff">&lt;</font><font color="#800000">servlet</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">servlet-name</font><font color="#0000ff">&gt;</font>forbidden<font color="#0000ff">&lt;/</font><font color="#800000">servlet-name</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">jsp-file</font><font color="#0000ff">&gt;</font>/403.jsp<font color="#0000ff">&lt;/</font><font color="#800000">jsp-file</font><font color="#0000ff">&gt;</font><br/>
<font color="#0000ff">&lt;/</font><font color="#800000">servlet</font><font color="#0000ff">&gt;</font><br/>
<br/>
<font color="#0000ff">&lt;</font><font color="#800000">servlet-mapping</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">servlet-name</font><font color="#0000ff">&gt;</font>forbidden<font color="#0000ff">&lt;/</font><font color="#800000">servlet-name</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">url-pattern</font><font color="#0000ff">&gt;</font>/css/<font color="#0000ff">&lt;/</font><font color="#800000">url-pattern</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">url-pattern</font><font color="#0000ff">&gt;</font>/img/<font color="#0000ff">&lt;/</font><font color="#800000">url-pattern</font><font color="#0000ff">&gt;</font><br/>
  <font color="#0000ff">&lt;</font><font color="#800000">url-pattern</font><font color="#0000ff">&gt;</font>/js/<font color="#0000ff">&lt;/</font><font color="#800000">url-pattern</font><font color="#0000ff">&gt;</font><br/>
<font color="#0000ff">&lt;/</font><font color="#800000">se</font><font color="#0000ff">&lt;</font><font color="#800000">rvlet-mapping</font><font color="#0000ff">&gt;</font></font><br/>
<br/>
<font color="gray">* This source code was highlighted with <a href="http://virtser.net/blog/post/source-code-highlighter.aspx"><font color="gray">Source Code Highlighter</font></a>.</font>


UPD2:


а потом переделал на нечто подобное:


<security-constraint>
<display-name>show forbidden message</display-name>
<web-resource-collection>
<web-resource-name>forbidden</web-resource-name>
<url-pattern>/css/</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
  • Вопрос задан
  • 3317 просмотров
Пригласить эксперта
Ответы на вопрос 1
ertaquo
@ertaquo
В Tomcat это можно сделать добавлением новой секции в WEB-INF/web.xml (пример для /css/*):
<security-constraint>
  <web-resource-collection>
    <web-resource-name>HTTP-Protected-Resource-1</web-resource-name>
    <description>Description here</description>
    <url-pattern>/css/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>NOSOUPFORYOU</role-name>
  </auth-constraint>
</security-constraint>

<login-config>
  <auth-method>DEFAULT</auth-method>
  <realm-name>NOACCESSFORANYONE</realm-name>
</login-config>
<security-role>
  <role-name>NOSOUPFORYOU</role-name>
</security-role>


* This source code was highlighted with Source Code Highlighter.

Источник
Для Jetty тоже по идее должно подойти.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
28 мар. 2024, в 21:17
5000 руб./за проект
28 мар. 2024, в 20:46
150000 руб./за проект
28 мар. 2024, в 20:37
50000 руб./за проект