首页 > 解决方案 > 从 Spring Security 过滤器访问 Spring Security 注释

问题描述

所以我目前正在将 struts 1 动作类迁移到 spring mvc,并且还添加了 spring security。在较旧的实现中,发生的情况是当用户通过身份验证时,我们HashMap<String, AuthObj>在会话对象中放置了一个对象,其中键HashMap是角色/特权,值AuthObj是一个对象,其中包含与该特定“角色”和该特定用户相关的多个道具认证。

然后有一个org.apache.struts.tiles.TilesRequestProcessor在调用任何 struts 操作之前执行的操作,我们在这里所做的TilesRequestProcessor是访问操作类配置org.apache.struts.config.ActionConfig以读取调用该特定操作类所需的角色/权限,然后将一些属性放入请求/会话中基于调用该动作类所需的“角色”的对象,并且该属性的键对于每个动作类都是相同的,因此当我们稍后在动作类中访问该属性时,我们不必使用不同的键。

我的问题是如何使用spring mvc和spring security来实现这一点,重要的是当我们把这个obj放在会话/请求对象中时,每个动作类的键应该是相同的,否则我将不得不修改100个方法我正在从 struts 迁移到 spring 的旧代码。

在我的新实现中,我@Secured("ROLE")在spring mvc控制器上使用注释,我想做的是@Secured("ROLE")使用过滤器根据请求url访问正在调用的控制器上的注释值,然后request.setParameter(key, value)根据提供的值在请求对象上设置一个参数在这种情况下是“角色”的注释。

我想知道如何访问这个注释值以及我应该扩展哪个弹簧安全过滤器以向请求对象添加一个参数,request.setParameter(key, value)并且这个请求参数也应该可以在控制器中访问

标签: javaspringspring-mvcspring-bootspring-security

解决方案


推荐阅读