簡體   English   中英

從其他Spring Security過濾器訪問數據

[英]Access data from other spring security filters

在Spring Security中是否可以訪問先前過濾器授予的憑據和權限?

背景:

我正在使用Spring和帶有基於令牌的身份驗證的Spring Security開發Java RESTful API。 但是,某些呼叫使用用戶密碼具有附加保護。

當前,我有自己的GenericFilterBean實現,該實現從HTTP頭過濾出令牌並檢查數據庫中是否存在令牌。 根據與此令牌關聯的權限,可以為用戶授予不同的角色。 權限存儲在my數據庫中,並且可以使用令牌進行檢索。

API中有多個調用,需要使用用戶密碼進行其他身份驗證。

我想到了創建第二個自定義過濾器,該過濾器從標題中提取密碼。 這種方法的問題在於,我不想僅通過用戶密碼來識別用戶,而是要從第一個過濾器中的令牌中提取用戶。

SecurityContextHolder始終保存當前的身份驗證對象。 您可以通過調用SecurityContextHolder.getContext().getAuthentication()來檢索通過身份驗證過濾器放置的身份驗證,該方法返回一個對象,該對象具有方法getAuthorities()getCredentials()getPrincipal()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM