[英]Grails Spring Security plugin Access Control/Authorization without Authentication?
我的问题:
我很乐意在我的Grails应用程序中使用Spring Security插件的访问控制/授权机制,而无需使用插件的身份验证机制。 我发现各种Grails Spring Security插件示例( 就像这一个 )结合了这两个函数。 是否有一种简单的方法来进行访问控制?
背景:
在正确的轨道上,但不是很有帮助:
我知道这是可能的,正如另一个问题所解释的那样:但问题及其答案解释了如何使用原始Spring Security框架在Java应用程序中执行此操作。 我希望有人能够以与Grails Spring Security插件的最新版本(撰写本文时为1.2.7.3)兼容的方式来规划如何执行此操作。 我不想重新发明已经由插件处理过的轮子。
此外,此示例解释了如何执行此操作,但它似乎已过时,因为它基于使用Spring Security 2.x的旧版本插件。 它也只对应用程序的一个部分使用自定义身份验证,而它看起来仍然在其他地方使用Spring Security插件的域类。
怎么做?
有人可以为我制定一个方法吗? 我假设我需要创建我的Role域类。 之后,我假设它将涉及自定义身份验证对象等。 但是如何将它们挂钩以使用插件的现有代码?
您可以使用自定义身份验证提供程序,我有一个更新版本,我在最近的演讲中做了一些。 请参阅此博客文章,其中包含示例应用程序并链接到该演讲的视频: http : //burtbeckwith.com/blog/?p = 1090
使用自定义UserDetailsService
会很简单 - 这是对插件进行的最常见的自定义,因此在文档中有自己的章节: http : //grails-plugins.github.com/grails-spring-security-core /docs/manual/guide/11%20Custom%20UserDetailsService.html
基本上你需要创建一个Spring Security User
实例,而Spring Security(和插件)并不关心你如何获取数据。 因此,您的自定义UserDetailsService
只需要成为当前身份验证方案和Spring Security之间的桥梁。
我最终创建了自己的访问控制/授权机制,而不是使用Spring Security插件。 我永远无法弄清楚如何将插件的身份验证机制与授权机制分开。 自己做这项工作非常容易。
我做了以下事情:
这个插件没有很好的语法糖,也不是很简洁,但它很容易实现和理解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.