【问题标题】:Spring security authorization via GET parameters通过 GET 参数进行 Spring 安全授权
【发布时间】:2013-01-07 06:02:10
【问题描述】:

我正在尝试让 Spring Security 通过 GET 变量处理授权。我能够找到的所有示例几乎完全集中在基于角色的授权上,这对我的应用程序并不适用。身份验证/授权过程需要工作的方式如下:

  1. 用户通过外部系统进行身份验证,获取会话 ID。
  2. 用户将两个 GET 参数传递给我的应用程序 sessionId 和 objectId。
  3. 应用程序验证会话是否有效(已经弄清楚这部分)
  4. 应用程序验证对象对用户可见(此处需要帮助)
  5. 应用程序向用户返回对象信息

我看到的所有示例都展示了 Spring Security 可以多么强大地检查 URL 模式或 Java 方法上的授予权限。但是我需要在第 4 步中实施自定义检查,以确保用户在后端拥有正确的权限(可以授予用户特定于对象的权限,因此角色方法在这里不起作用)。

我是 Spring Security 的新手,所以我的思考过程可能是各种各样的错误。如果我是,请随时纠正我!

【问题讨论】:

    标签: java spring spring-mvc spring-security


    【解决方案1】:

    您需要使用ACL 功能,或者您可以通过一些自定义代码(例如通过自定义网络安全表达式)模拟相同的东西。详情请见this post

    【讨论】:

      【解决方案2】:

      我认为您需要查看文档中的Pre-Authentication Scenarios 部分。特别是,您可能需要实现 AbstractPreAuthenticatedProcessingFilter 以根据 GET 参数对用户进行预身份验证。

      【讨论】:

      • 你是说我也应该对过滤器中的对象进行授权吗?我目前只是使用它来确保用户的凭据有效。
      • 好吧,从它的声音来看,您正在尝试设置 SSO,例如 SiteMinder。预认证是通常完成的方式。
      猜你喜欢
      • 2017-05-10
      • 2012-04-07
      • 1970-01-01
      • 2012-09-22
      • 2013-11-02
      • 2012-07-24
      • 1970-01-01
      • 2020-10-23
      相关资源
      最近更新 更多