2014-01-17 33 views
1

我能夠在Spring Social中使用Facebook API幾天(3個月或更長時間),但現在發生異常「org.springframework.social.ExpiredAuthorizationException:授權已過期」。如何處理髮生在Spring社交Facebook的ExpiredAuthorizationException?

因此我調查了這個問題,自從春季社交版本1.1.0.M3通過重新連接的過濾器已經解決了,但即使按照建議我也無法更新令牌。

如何從此異常中恢復?

回答

1

在對代碼進行了大量分析之後,我最終解決了直接修改代碼以更改ExpiredAuthorizationException異常的方法,該方法由Spring社交核心中的OAuth2Connection類以及Spring社交核心的特殊過濾器(ReconnectFilter)版本1.1.0.M3)。

爲此,請在社交配置中設置重新連接篩選器的bean。

@Bean 
public ReconnectFilter apiExceptionHandler() { 
    return new ReconnectFilter(usersConnectionRepository, userIdSource()) ; 
} 

不要忘了還可以設置過濾器在web.xml

<filter> 
    <filter-name>apiExceptionHandler</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 
    <filter-mapping> 
    <filter-name>apiExceptionHandler</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

所需要的最後一件事是在org.springframework.social.connect.support.OAuth2Connection類模塊spring-social-coreExpiredAuthorizationException異常ExpiredAuthorizationException(null)的投擲的修改,以throw new to ExpiredAuthorizationException(getKey().getProviderId())

之後,過濾器將刪除舊的Facebook連接,並通過ConnectController/connect/facebook?reconnect=true中的POST創建一個新連接。

使用版本1.1.0.M4社交春天。

相關問題