2017-04-18 30 views
0

我有這樣定義的基本異常處理程序:的SimpleMappingExceptionResolver醒目NotAuthorizedException

<bean id="exceptionResolver" 
     class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
    <property name="defaultErrorView" value="errors.exception-handling" /> 
</bean> 

,我有我的安全控制方法是這樣的:

@PreAuthorize("isAuthenticated()") 
@RequestMapping(value = "/Home", method = RequestMethod.GET) 
public String home(HttpServletRequest request, HttpSession sess) { 
} 

現在,我有我的NotAuthorized處理器配置爲重定向如果您點擊/ Home,則進入登錄頁面。但是,使用exceptionResolver,我只是讓我的頁面說有錯誤。如果我註釋掉exceptionResolver,它可以正常工作。

如何讓它忽略NotAuthroized和其他此類安全異常?

+0

你可以發佈你的處理程序代碼嗎? –

回答

0

你可以這樣

<property name="exceptionMappings"> 
    <props> 
     <prop key="org.springframework.security.AccessDeniedException">loginPageUrl</prop> 
    </props> 
</property> 

更新添加:

可以指定excludedExceptions以及忽略NotAuthroized異常,並讓它單獨處理。

+0

這不起作用。我有一個嚴格的過濾器設置,只是重定向到登錄頁面不起作用。有沒有辦法將一個exceptionMappings設置爲一個bean?即ref =「myAccessDeniedHandler」 – mmaceachran

+1

ExcludedExceptions怎麼樣?您可以將它們添加到您的exceptionResolver中以跳過其解決方案 – StanislavL

+0

將您的答案更改爲ExcludedExceptions,並將其標記爲正確。謝謝! – mmaceachran

相關問題