我使用Spring和Apache CXF創建REST Web服務應用程序。我使用x.509證書對用戶進行身份驗證,然後使用自定義授權服務來獲取所有用戶組和詳細信息。我已經實現了一個自定義UserDetailsService,它提取用戶信息並填充UserDetails對象。部分填充此對象的過程涉及到對公司授權服務的請求。不幸的是授權服務是一個專有系統,但至少它們提供了一個Java API。除其他外,授權服務返回用戶所屬組的列表。Spring Security使用X.509身份驗證和定期更新授權UserDetails
我仍處於開發階段,但迄今爲止我的觀察似乎表明,初始連接時會調用UserDetailsService一次。然後每個請求使用一個緩存的授權對象。
所以我的問題和潛在的問題是......公司政策規定應用程序只允許在一段時間內緩存用戶授權詳細信息。那麼,在刷新它們之前,Spring會保留這些對象緩存多長時間?而且,如何控制這個緩存時間以確保我遵守策略?
感謝您的提示。我修改了_UserDetailsService_的實現,使用_EhCacheBasedUserCache_並將TTL屬性設置爲適當的過期值。這需要處理問題的一個部分,即授權服務不再需要經常諮詢。正如帖子中提到的那樣,我還想實施過濾器,以定期檢查用戶會話並在需要時將其過期。從哪裏開始的任何提示?我從來沒有創建過自定義過濾器。謝謝! – Isaac 2012-04-25 18:03:27
我根據另一篇文章的答案找出了問題的其他部分:http://stackoverflow.com/q/10322026/1354698 – Isaac 2012-05-31 23:41:32