有没有办法通过用户名或其他对象识别suer来获取用户会话的详细信息(例如“权威”)?
我知道很容易掌握当前用户的这些详细信息(例如Collection<?> authorities = authentication.getAuthorities()
),但我有什么办法可以做点什么吗
Collection<?> authorities = authentication.getAuthoritiesByUsername('skn');
或
Collection<?> authorities = authentication.getAuthorities(principalObject);
用例是我需要通过REST API调用来获取用户的会话详细信息。
答案 0 :(得分:1)
Spring通过org.springframework.security.core.userdetails.UserDetailsService界面检索用户的权限。
您通常会向身份验证管理器提供UserDetailsService实现bean,管理器将调用该接口以检索用户详细信息。
根据您配置服务的方式,应该可以将UserDetailsService注入任何其他bean。此时,您可以简单地调用loadUserByUsername()来为用户检索UserDetails对象,然后在其上调用getAuhtorities()。