java - 从 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)
并且这个请求参数也应该可以在控制器中访问
解决方案
推荐阅读
- elasticsearch - 启用从一个自定义 IP 到 Elasticsearch 集群的远程访问
- ios - iOS API 密钥:在发出 http 请求时,是否有一种实际安全的方法来保护您的 API 密钥?
- azure - 如何在 Azure Cloud 上使用普通文件缓存加入 Kafka KStream?
- map-projections - SpatialPixelsDataFrame 对象的投影
- .htaccess - 如何删除每个链接末尾出现的单词
- angularjs - 如何使用 ng-repeat 值设置多选下拉菜单的选择限制
- c - 为什么我的数字数组的平均值不正确?
- vb.net - 从 Informix vb.net 填充 datagridview 的特定列
- python - 无法构建 LibAdblockPlus
- react-native - 是否可以在 Windows 笔记本电脑中使用 React Native 构建 android 和 iOS 应用程序?