Spring安全性:添加一个支持IP身份validation的新ROLE

我是Spring Security的新用户。

我之前配置了Spring Security来为我的Web应用程序执行基于表单的身份validation。

我已经使用Annotations来指示哪些控制器/方法需要ROLE_USER与匿名,并实现了我自己的daoAuthenticationProvider来执行身份validation。

我现在正在实现REST服务,需要在BasicAuthentication上进行身份validation+对我的数据库进行IPvalidation。

所以我在REST服务控制器上定义了一个新角色ROLE_IP_AUTH。

在这一点上我只是有点不知所措。 有人能给我一个简短的描述我应该采取的下一步措施吗?

  • 我是否需要为新角色创建新的元素?
  • 我应该切换到这个FilterChainProxy吗? 如果是,我应该包括哪些filter?
  • 我应该在现有的daoAuthenticationProvider类中处理这个问题吗?

基本上我只需要知道我要进入的方向。我想我已经足够了解到达目的地,只有5种不同的方式可以在Spring看到它。


附加信息我当前的实现具有如下配置元素:

      

我剩下的问题是如何实现自己的IPvalidation。 我可以使用自定义filter添加BasicAuthfilter并实现我自己的基本身份validationfilter来检查IP。 但我对如何使该filter仅适用于我的REST服务使用的ROLE_IP_AUTH模糊不清?

@Ritesh的答案非常有助于以不同的方式重新构建这个任务。 另一个解决这个问题的好post在这里:

Spring安全性 – 如何提及基于表单和基本身份validation

最终我的理解是:通过@Ritesh在3.0.x中建议的选民来做,或者使用3.1.0.RC1(17mar2011版本)中现有的多个元素,如链接中所述以上。

您只需将http-basic添加到元素即可。

  

另外,添加create-session =“never”会导致您不为REST服务添加会话。 毛你的服务到一个特殊的url模式将帮助。