NO IMAGE

昨天學習acegi,發現一個異常

 

檢視了以下,原始碼,異常出錯的地方的原始碼是這樣的:


可以看到,抱著個異常是因為getAuthentication()為null,但是從doc上看來,如果配置了httpSessionContextIntegrationFilter,就應該是把“在執行其他過濾器之前,率先判斷使用者的session中是否已經存在一個SecurityContext了。如果存在,就把SecurityContext拿出來,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在,就建立一個SecurityContext出來,還是放到SecurityContextHolder中,供Spring Security的其他部分使用。”。從這個上面來看,應該是context不為null,但是getAuthentication()為null。是因為沒有經過授權authentication物件就為空了,但是我配置的exceptionTranslationFilter。所以這個問題一直沒有解決到,昨晚忙乎了2個多小時。

 

今天早上起來突然想到了,因為exceptionTranslationFilter配置在了filterInvocationInterceptor之前,出了異常沒有被exceptionTranslationFilter捕獲到,所以就把2者順序替換了以下,結果搞定。。出了這個異常的時候,自動跳轉到exceptionTranslationFilter配置的authenticationEntryPoint屬性了。

 

問題解決。。