使用 Spring Security Rest 插件保护 Grails Rest Api

Posted

技术标签:

【中文标题】使用 Spring Security Rest 插件保护 Grails Rest Api【英文标题】:Secure Grails Rest Api with Spring Security Rest Plugin 【发布时间】:2014-12-06 17:15:06 【问题描述】:

我可以使用 spring-security-rest 作为 Oauth 的替代品吗?我的应用程序有服务器端部分和 java 脚本客户端部分,我发现 spring-security-rest 插件最适合。但我希望能够对其他想要使用我的服务的应用程序进行身份验证(我想成为 Oauth 提供者)。 spring-security-rest 插件是否支持这个?还是我应该使用其他插件?

【问题讨论】:

Spring Security REST Grails 插件允许您使用 Spring Security 进行无状态、基于令牌的 RESTful 身份验证。 是的,您可以。 Reading through the fine manual 将有助于了解该插件如何也可以作为其他 OAuth 提供者的委托人。 其实我想要的是让我的应用程序像 OAuth 提供者 【参考方案1】:

该插件不是完全的 OAuth 提供程序。或者用 OAuth 术语说,不是一个完整的授权服务器。

在这种情况下,我推荐你Spring Security OAuth 2 Provider Plugin

【讨论】:

【参考方案2】:

如果您只为您的服务寻找基于简单令牌的身份验证,您可以利用spring security rest plugin 并根据您的需要对其进行一些调整,而无需实现完整的 Spring Security OAuth2 Provider plugin。我设法通过扩展spring security rest plugin 的一些基类来修改登录有效负载和身份验证并公开token/validate 作为REST 端点来完成类似的事情。我把它作为一个独立的身份验证服务,它使用/api/login API 生成令牌,与/token/validate 一起完成某种令牌验证。不是一个完整的 Oauth 场景,而是用于消费者和提供者服务之间的身份验证。

【讨论】:

以上是关于使用 Spring Security Rest 插件保护 Grails Rest Api的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring 和 Spring Security 进行 REST 身份验证

使用 Spring Security 保护 REST 端点

Spring MVC REST + Spring Security + 基本身份验证

如何使用 Spring Security 和 Angularjs 保护 Spring Rest 服务?

使用 Spring Security 保护 REST API

如何使用 Spring Security 在 Spring App 中测试 REST