繁体   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