通过GET参数进行Spring安全授权

时间:2013-01-23 16:57:07

标签: java spring spring-mvc spring-security

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

  1. 用户通过外部系统进行身份验证,获取会话ID。
  2. 用户将两个GET参数传递给我的应用程序sessionId和objectId。
  3. 应用程序验证会话是否有效(已经计算出此部分)
  4. 应用程序验证对象是否对用户可见(此处需要帮助)
  5. 应用程序将对象信息返回给用户
  6. 我见过的所有示例都证明了Spring Security如何有力地检查URL模式或Java方法的授权。但我需要在步骤4上实现自定义检查,以确保用户在后端具有正确的权限(可以授予用户特定于对象的权限,因此角色方法在此处不起作用)。

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

2 个答案:

答案 0 :(得分:1)

您需要使用ACL功能,或者您可以通过一些自定义代码模拟相同的内容(例如通过自定义Web安全表达式)。有关详细信息,请参阅this post

答案 1 :(得分:0)

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