2014-03-02 40 views
2

我有一個使用案例,使用戶在登錄後接受條款和條件。除非他接受條款和條件,否則用戶在登錄後無法訪問任何URL。是否可以使用彈簧安全來實現相同的功能?如果是,如何?彈簧安全:登錄後接受條款和條件

回答

1

成功登錄後,可以添加用戶一個權限,並允許他訪問條款和條件頁面(例如TERMS_AND_CONDITIONS_PRIVILEGE)。成功發佈後,您可以從數據庫獲取用戶的權限並將其授予他的安全上下文。這裏是好貼如何做到這一點

http://forum.spring.io/forum/spring-projects/security/60663-change-user-logged-authorities-on-the-fly
首先,你必須通過調用SecurityContextHolder.getContext()接下來,您必須通過調用context.getAuthentication()從它那裏得到Authentication得到SecurityContextHolder。從Authentication可以得到Principal並將其轉換爲User對象。
請記住檢查SecurityContextHolder.getContext()是否不返回空值,並且Authentication a = context.getAuthentication()也不爲空。
我也推薦將檢查a.getPrincipal()是User類的實例
我希望它能幫助

0

我會建議在登錄頁面添加複選框。當用戶接受條件&條件時,將檢查此複選框。登錄頁面將成爲JSP,因此在提交時,您可以檢查複選框是否被選中,這意味着用戶已經使用了條款和條件。

實現起來比較簡單(你不需要另一個重定向),我認爲這是更好的UX(用戶體驗)。

HTH。