Пользовательская ошибка Page + Spring Security 3 + hasPermission - PullRequest
2 голосов
/ 22 ноября 2011

как отобразить пользовательскую страницу с ошибкой, когда пользователь не видит страницу (если не имеет определенного разрешения) после получения HTTP 500 -

org.springframework.security.access.AccessDeniedException: доступ запрещен

Исключение из пользовательского метода hasPermission ().

Вы можете проверить мой предыдущий вопрос здесь , чтобы увидеть мой код.

1 Ответ

3 голосов
/ 22 ноября 2011

В вашем конфигурационном файле struts2 вы можете настроить глобальные исключения, такие как

<global-exception-mappings>
    <exception-mapping exception="org.springframework.security.access.AccessDeniedException" result="securityerror" />
     <exception-mapping exception="java.lang.Exception" result="error" />
   </global-exception-mappings>

  <global-results>
        <result name="securityerror">/securityerror.jsp</result>
    <result name="error">/error.jsp</result>
   </global-results>

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

<action name="actionspecificexception" class="org.apache.struts.register.action.Register" method="throwSecurityException">
     <exception-mapping exception="org.springframework.security.access.AccessDeniedException" 
          result="login" />
      <result>/register.jsp</result>
      <result name="login">/login.jsp</result>
   </action>

Так что от вашего выбора зависит, как вы хотите его настроить. Подробности см.

Обработка исключений в Struts2

Мое предложение состоит в том, чтобы не создавать все исключения как сырые, лучше создавать свои собственные оболочки исключений и заключать в них такие исключения, это поможет вам лучше организовать код

Надеюсь, это поможет вам.

...