我們有一個場景,我們有一系列應用程序,都使用spring-session(w/Redis),用戶可以多次登錄以訪問不同的應用程序。多個應用程序,相同會話和更新角色
如果管理員修改用戶添加新角色(例如,訪問新應用)(GrantedAuthority),我們需要將其反映到所有用戶活動會話中。
問題是,我認爲SecurityContextHolder對SecurityContext使用ThreadLocal存儲(它繼而保存GrantedAuthorities)。
我試着與會話存儲庫進行交互,並使用它來更新會話信息,但由於上述TL存儲,它不會在應用程序中反映出來。
有沒有一種常見的模式/策略以這種方式傳播更新角色信息?
謝謝。
只是爲了澄清一下,您的所有應用程序是否都使用相同的會話信息通過共享相同的Redis會話存儲?或者你在使用OAuth2等集中式認證解決方案嗎? –
我們正在使用相同的共享Redis會話存儲。 –