Как я возвращаю 403, Запрещенные в Spring MVC?

Вам необходимо скомпилировать с отладочной информацией (используя -g в случае GCC). Установка отладочной информации для библиотеки C (в пакетах libc6-dbg или glibc-debuginfo во многих системах) также может помочь.

Вы также можете привести malloc к указателю на функцию правильного типа, например:

(gdb) print ((void * (*) (size_t)) malloc) (5 * 1024 * 1024)
$1 = (void *) 0x7ffff65b2010
27
задан Will Harris 5 September 2008 в 11:11
поделиться

3 ответа

Недоброкачественная продукция

при использовании простых представлений JSP (как наиболее распространено), тогда просто добавьте

<% response.setStatus( 403 ); %>

где-нибудь в файле представления. Наверху хорошее место.

Деталь

В MVC, я всегда устанавливал бы это в представлении, и в большинстве случаев с Spring-MVC, использовать SimpleMappingExceptionResolver для представления корректного представления в ответ на вызванную динамическую исключительную ситуацию.

, Например: создайте и бросьте PermissionDeniedException в свой контроллер или уровень служб и имейте точку преобразователя исключения в файл permissionDenied.jsp представления. Этот файл представления устанавливает 403 состояния и показывает пользователю соответствующее сообщение.

В Вашем бобовом XML-файле Spring:

<bean id="exceptionResolver"
      class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  <property name="exceptionMappings">
    <props>
      <prop key="PermissionDeniedException">          
        rescues/permissionDenied
      </prop>
      ... set other exception/view mappings as <prop>s here ...
    </props>
  </property>
  <property name="defaultErrorView" value="rescues/general" />
</bean>

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
  <property name="prefix" value="/WEB-INF/views/" />
  <property name="suffix" value=".jsp" />
</bean>

, Если необходимо реализовать пользовательский механизм входа в систему, смотрите на безопасность Spring (раньше безопасность Acegi).

12
ответ дан 28 November 2019 в 04:14
поделиться

Используя ExceptionResolver отличный способ пойти, но если Вы просто хотите, чтобы это было независимо от представления, Вы могли бы, конечно, позвонить response.sendError(HttpServletResponse.SC_FORBIDDEN, "AdditionalInformationIfAvailable"); в Вашем Контроллере.

12
ответ дан 28 November 2019 в 04:14
поделиться

Используйте это: response.setStatus(403).

6
ответ дан 28 November 2019 в 04:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: