2011-03-28 36 views
0

我正在編寫一對方面。首先是在用戶成功通過我的Web應用程序進行身份驗證時捕獲用戶名,另一個是在顯式註銷時進行陷阱。我很難找到只被調用一次的Spring框架方法,因此我可以捕獲這些信息。成功登錄和註銷後編寫陷阱用戶名(Spring Security 3.0.X)

我們使用的是基本的Spring Security 3.0配置,我們唯一的補充是提供我們自己的UserDetailsS​​ervice實現。

誰能幫助?

回答

1

事實證明,這是完全錯誤的方式來做到這一點。 Spring有一組嵌套的ApplicationEvent類,您可以創建ApplicationListeners來捕獲。奇怪的是,似乎沒有「LogoutEvent」,但有非常有用的AuthenticationSuccessEvent,AbstractAuthenticationFailureEvent,HttpSessionCreationEvent和HttpSessionDestroyedEvent。最有趣的是RequestHandledEvent。

爲了捕捉這些我創建了自己Bean上實現

org.springframework.context.ApplicationListener; 

和壓倒

public void onApplicationEvent(ApplicationEvent appEvent) 

在此我的if/else我通過各種appEvent類型的方式,並採取適當的行動,跟蹤用戶和會話。

+0

+1事件非常好,並保持代碼解耦。我想補充一點,使用方面也可能是一個選項 - 例如,在您希望從特定身份驗證提供程序捕獲事件或想要更改主執行流程本身的情況下。 – Ritesh 2011-03-30 16:00:30

相關問題