Security 没有数据库实现的Grails安全性

Security 没有数据库实现的Grails安全性,security,api,grails,spring-security,shiro,Security,Api,Grails,Spring Security,Shiro,我正在用Grails2.2.0开发一个web应用程序,它通过调用另一个后端服务器的已实现API执行所有操作。这意味着,所有事情,甚至身份验证和所有相关的事情,都是通过API和相应的后端服务器完成的 现在我想使用SpringSecurity或ApacheShiro插件进行身份验证和角色管理等,但我遇到的所有这些插件都是使用与datbase相关的域类,这不是我想要做的。。。有没有可能在没有数据库连接的情况下使用这些插件,而不需要对它们进行高度定制?或者有没有另一个插件,我不知道,它可以带来我需要的功

我正在用Grails2.2.0开发一个web应用程序,它通过调用另一个后端服务器的已实现API执行所有操作。这意味着,所有事情,甚至身份验证和所有相关的事情,都是通过API和相应的后端服务器完成的

现在我想使用SpringSecurity或ApacheShiro插件进行身份验证和角色管理等,但我遇到的所有这些插件都是使用与datbase相关的
类,这不是我想要做的。。。有没有可能在没有数据库连接的情况下使用这些插件,而不需要对它们进行高度定制?或者有没有另一个插件,我不知道,它可以带来我需要的功能“无麻烦”


我希望问题本身足够清楚,否则请毫不犹豫地询问我对我的问题的进一步/更好的解释:)

ApacheShiro插件不会强迫您使用域类或数据库。 您可以有一个(将其放在grails app/realms中)将身份验证和授权委托给后端服务器。这应该是这样的:

class BackendServerRealm {
   def authenticate(authToken) {
       // call backend authentication with credentials from authToken
       def user = backednService.authenticate(authToken.username, authToken.password)
       ...
       new SimpleAccount(user.username, user.password, "BackendServerRealm")
   }
}

Shiro只是为您提供了执行身份验证和授权的基础设施,但您可以非常轻松地插入自己的实现

Spring Security核心插件默认使用域类和数据库,但是,使用自定义的
UserDetailsService
实现来自定义用户和角色数据的源是很容易的。这上面有一个问题


我还做了一个关于自定义插件的演讲,并提供了一个自定义身份验证提供者的示例。这里有一个示例应用程序和演讲视频的链接。

非常感谢您的博客帖子和您(非常有趣!)演讲的链接-我已经浏览了上述内容,我真的希望尝试使用Spring Security插件实现;)我现在已经完成了上述工作,我真的希望尝试使用Spring安全插件的实现;)但是,和往常一样,我对这个g有一些问题,我想知道的第一件事是,如果有必要,用户凭证(用户名、密码)的身份验证必须在我的Grails项目中?我之所以这么问,是因为所有的身份验证都是通过我的项目中的后端完成的,我不想将给定的密码存储的时间过长……Spring Security不关心数据来自何处。如果创建自定义提供程序,您只需要为自定义UserDetails服务或直接验证创建有效的用户实例。非常感谢-我目前正在进行此工作-似乎很有希望;)感谢您对Shiro@drorb的建议-但我决定使用Spring安全插件;)