Spring-如何保护RESTful私有资源?

2024-04-16

我有一些 RESTful 服务,使用 Spring MVC 实现,公开一组资源。我已经使用基于 HTTPBasicAuthentication 和 HTTPS 的身份验证。某些资源必须只能由某些用户访问。

例如,我希望 URI 中的所有子资源/users/{userid}/photos仅用户可以访问userid。实际上,在我的应用程序中,所有经过身份验证的用户都可以访问它们。我怎样才能保护他们免受其他用户的侵害,除了userid? 如果我只想允许一部分用户访问此资源(例如,userid的朋友)?


你可以在你的方法上做这样的事情:

    @ResponseBody
    @RequestMapping(value = "/users/{userid}/photos", method = RequestMethod.GET)
    @Secured(value = {"userid"})
    public ResponseEntity<ModelMap> getPhotos(....) throws Exception {

如果您将来愿意,您可以通过执行以下操作来添加更多用户

    @Secured(value = {"ROLE_ADMIN", "userid"})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring-如何保护RESTful私有资源? 的相关文章

随机推荐

  • 使用 xpose 挂接一个以自定义类数组作为参数的方法

    如何挂钩包含自定义类数组的方法 Lcom samsung android uniform widget notification NotificationItem 这就是 smali 论证 我可以上课XposedHelpers findCl
  • 显示从 SBT 构建发出的确切 scala 命令

    当我针对本地版本的 Scala 构建我的 相对复杂的 SBT 项目时 出现以下错误 scalac error bad option Ydelambdafy method 这可能是一个错误scalac或我们的构建文件 但是 我无法在调用时重现
  • 无法在守护进程模式下运行 Ansible

    我可以运行 Ansible 像守护进程一样管理我的主机吗 例如 我有时会更改我的剧本 但我不想手动运行 ansible playbook main yml 请不要建议 crontab 有一个特定的点 我不能在生产服务器上使用 crontab
  • sun.* 包发生了什么

    我在 JDK 7 文档中没有找到任何关于sun 包 是否已弃用 但替代品是什么 For eg sun reflect 已被弃用 那么现在有什么选择呢 如果有人可以发布已弃用的软件包和可用的新选项 那就太好了 Note I succeded
  • c中如何检查字符串中的重复字符

    我正在尝试创建一个程序来检查命令行参数字符串中的重复字符 该字符串假定仅包含 26 个字符 并且所有字符都必须是字母顺序的 但是 字符串中不能有任何重复的字符 每个字母字符只能出现一次 我弄清楚了程序的前两部分 但我不知道如何检查重复的字符
  • 多线程代理检查器

    我有很少的代码 例如 using WebClient wc new WebClient wc Proxy new WebProxy IP Port resume if wc IsBusy string rtn msg string Empt
  • 使用 php 从 mysql 删除逗号

    我有一个列名称战斗机 其中包含 mysql 中的一些值 例如 战士 摇滚 约翰 塞纳 承办人 所以 我希望当我在浏览器中显示它时 它应该看起来像 Rock 约翰 塞纳 送葬者 我只想使用 PHP 从数据库中删除逗号 任何帮助将不胜感激 Gi
  • Tweetsharp 授权不呈现 oauth 令牌

    我正在尝试在我的 asp net mvc 3 应用程序中实现 tweetsharp 但遇到了问题 我使用以下设置创建了一个新的 Twitter 应用程序 申请网站 http 127 0 0 1 8545 http 127 0 0 1 854
  • 当互联网连接或断开时收到通知

    我有一个在 Net 4 0 客户端下开发的 WPF 和 C 桌面应用程序 必须根据 PC 上的互联网是否可用来显示或隐藏某些数据的框架 这意味着我必须能够尽快检测到互联网是否断开或连接 以便做出反应 例如 断开无线网络或拔掉网络电缆 当我进
  • Angular 6 构建中的 style.js 是什么

    偷看html源代码 我使用 sass 使用 ng 6 构建 SPA 我找到了这些文件列表 我想知道 style js 是做什么用的 我正在
  • VIM自动插入PHPdoc

    有没有办法使用命令或组合键在 VIM 中插入 PHPDoc 例如 我有一堂课 class MyClass public function construct public function destruct command here to
  • 没有扩展名的文件名叫什么?

    给定文件名foo bar baz 我们可以说foo is the dirname bar baz is the basename and baz is the extname 但是有没有一个类似的术语可以用来表示foo bar or bar
  • C++ 没有 DELETE 宏的原因

    在那儿任何好的理由 也许除了 宏是邪恶的 不使用以下宏 define DELETE ptr if ptr NULL delete ptr ptr NULL define DELETE TABLE ptr if ptr NULL delete
  • 如何应用iOS VNImageHomographicAlignmentObservation warpTransform?

    我正在测试 Apple 的 Vision Alignment API 并对 VNHomgraphicImageRegistrationRequest 有疑问 有人让它工作吗 我可以从中得到 warpTransform 但我还没有看到一个有意
  • 如何通过FTP将多个多级(不同层次)文件从本地版本覆盖到在线版本

    我只是在本地更改了几个不同目录中的许多文件 然后将更改推送到 Subversion 但这不会更改实时版本 只会更改存储库 现在我必须通过 FTP 更新这些文件 但它们都是不同的层次结构级别 我怎么做 我知道的唯一方法是采用我的整个本地版本并
  • YUV420 到 RGB 转换

    我使用以下公式将 RGB 矩阵转换为 YUV 矩阵 Y 0 257 R 0 504 G 0 098 B 16 Cr V 0 439 R 0 368 G 0 071 B 128 Cb U 0 148 R 0 291 G 0 439 B 128
  • Java中获取Spark当前任务ID

    我需要获取 Spark 中当前任务的 ID 我一直在Google和官方API中搜索 但我能找到的唯一ID是执行者ID和RDD的ID 有谁知道如何获取任务的唯一ID 我看到班级TaskInfo正是我正在寻找的东西 但我不知道如何获取此类的实例
  • 正则表达式从查询字符串中删除一个参数

    我正在寻找一个正则表达式来从查询字符串中删除单个参数 并且如果可能的话 我想在单个正则表达式中执行此操作 假设我要删除foo范围 现在我用这个 foo 只要foo不是查询字符串中的第一个参数 如果是 那么我的新查询字符串以 符号开头 例如
  • 姜戈。线程安全的更新或创建。

    我们知道 更新是线程安全的操作 这意味着 当你这样做时 SomeModel objects filter id 1 update some field 100 代替 sm SomeModel objects get id 1 sm some
  • Spring-如何保护RESTful私有资源?

    我有一些 RESTful 服务 使用 Spring MVC 实现 公开一组资源 我已经使用基于 HTTPBasicAuthentication 和 HTTPS 的身份验证 某些资源必须只能由某些用户访问 例如 我希望 URI 中的所有子资源