问题标签 [spring-security-oauth2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
887 浏览

grails - 如何使用 Grails Spring Security Core 设置 Google 登录?

我正在尝试使用 Google+ 登录设置对我的 Grails 应用程序的身份验证。Google 弃用了他们的 OpenID,并且他们不再允许新应用以这种方式进行身份验证。

我尝试使用http://grails.org/plugin/spring-security-oauth2-provider

一旦我安装了它,我不知道该怎么做才能让它真正进行身份验证。任何人都可以在这里填写缺失的空白吗?我已阅读文档https://adaptivecomputing.github.io/grails-spring-security-oauth2-provider/docs/guide/index.html,但它主要处理配置选项,而不是操作指南.

如果有人有一个正在运行的示例项目并且我可以看到源代码,或者可以将我指向正确的阅读材料,那就太好了。

提前致谢,

0 投票
2 回答
29100 浏览

java - 如何获取 Spring Boot 和 OAuth2 示例以使用默认密码授予凭据以外的其他凭据

我正在关注 Dave Syer 的基本 Spring Boot OAuth2 示例:https ://github.com/dsyer/sparklr-boot/blob/master/src/main/java/demo/Application.java

该示例适用于两种类型的授权,但密码授权使用 Spring Boot 默认安全用户(在启动期间回显“使用默认安全密码:927ca0a0-634a-4671-bd1c-1323a866618a”的用户)。

我的问题是如何覆盖默认用户帐户并实际依赖 WebSecurityConfig?我添加了这样的部分:

但它似乎并没有覆盖默认的 Spring 用户/密码,即使文档建议它应该这样做。

为了让这个工作,我缺少什么?

0 投票
1 回答
15175 浏览

oauth - Oauth2 错误凭据 Spring Boot

我收到错误消息:

“error”:“invalid_grant”,“error_description”:“凭证错误”

这是我提出的要求:

我的代码来自这里:https ://github.com/juleswhite/mobilecloud-14/tree/master/examples/9-VideoServiceWithOauth2

这是代码:Application.java:

ClientAndUserDetailsS​​ervice.java

OAuth2SecurityConfiguration.java

感谢您的关注和时间!

0 投票
1 回答
1088 浏览

java - HttpSecurity 不适用于 Spring Boot 1.1.7

我正在尝试基于此示例在我的移动应用后端实现 OAuth2 安全性。

该示例使用springBootVersion = '1.0.2.RELEASE'. 在我的项目中,我使用的是 1.1.7.RELEASE。在有几个莫名其妙的 400 - Bad Requests 之后,我开始配对依赖项。

因此,当我将示例 Spring Boot 版本设置为等于我的版本时,它会停止编译。具体是找不到**.**之间的方法。

我相信与应用程序安全性相关的 gradle 依赖项是:

这些是示例中的原始内容。然而,有趣的是,在我的应用程序中,我从来没有遇到编译错误,但它也不起作用。我与示例应用程序一起运行的测试用例运行良好。

我在这里真的很困惑。我应该更改任何这些依赖项吗?提前感谢您的任何支持。

编辑

简单的问候控制器:

预期输出:

实际输出:

0 投票
1 回答
11195 浏览

oauth - 使用 OAuth 2 单点注销

我们刚刚讨论了使用 OAuth 2 时的登录和注销行为。假设我们有两个 web 应用程序AB使用一个 OAuth 提供程序O(使用 spring-security-oauth2 堆栈构建)。

当您想登录时,A您会被重定向到O,输入您的凭据,在那里获得一个会话O,使用访问令牌重定向回,A并且还会创建一个会话A

现在,当您想要登录时,B您会被重定向到O,直接将令牌发送回 B,因为您仍然有一个有效的 sesison,O并且还会创建一个会话B(无需再次输入您的凭据)。

这解决了我们的单点登录问题。

现在的一个要求是,当您从两个/所有应用程序注销A B注销时(单点注销)。

我们的想法是:

  • 使用当前会话 id 增强访问令牌
  • 如果应用程序AB想要注销用户,它们会将他重定向到注销页面O
  • 如果用户从 注销O,则属于当前会话的所有访问令牌O都将被删除,并且用户将被重定向回AB
  • 会话开启A或被B破坏
  • AB在每个请求上检查他们的 OAuth 访问令牌的有效性,如果令牌不再有效,则销毁他们的会话

您认为这是 OAuth 2 的有效用例吗?您将如何以不同的方式实施单点注销?

0 投票
4 回答
37488 浏览

spring - Spring Security OAuth2 check_token 端点

我正在尝试使用 spring security oauth 设置资源服务器以与单独的授权服务器一起使用。我正在使用RemoteTokenServices需要/check_token端点。

我可以看到/oauth/check_token端点在使用时默认启用@EnableAuthorizationServer。但是,默认情况下无法访问端点。

是否应该手动添加以下条目以将此端点列入白名单?

这将使所有人都可以访问此端点,这是所需的行为吗?或者我错过了什么。

提前致谢,

0 投票
1 回答
1561 浏览

oauth - 为什么 Spring Security OAuth2 DefaultTokenServices 在加载身份验证时检查 clientId?

为什么要DefaultTokenServices检查clientId方法loadAuthentication

以上是问题,以下只是一些背景来解释我为什么想出它。我要问的原因是一个特殊的场景:例如,如果授权服务器不对所有客户端负责,但资源服务器在同时作为资源服务器和授权服务器的 Spring Boot 应用程序中,检查会带来问题必须为所有客户服务。

在纯资源服务器上,clientDetailsS​​ervice 可以为空。资源服务器可以在不知道注册客户端的情况下工作,同时仍然可以对访问令牌的其他属性强制执行安全性,例如资源 ID 和访问令牌的有效性。

在纯 Authorization Server 上没有问题,因为 Authorization Server 必须有一个 clientDetailsS​​ervice,它知道可以为其颁发令牌的所有客户端。

然而,在混合服务器上,授权服务器可能不知道所有可能的客户端,因为可能存在其他授权服务器。然后,资源服务器组件将检查上述代码中的每个 clientId,并拒绝来自该授权服务器不知道的客户端的所有请求。

使场景易于理解的示例:

  1. 有一个混合服务器(授权和资源服务器合二为一)为业务用户发布令牌并为管理业务用户提供服务(例如创建、锁定、解锁等)。

  2. 还有一个单独的授权服务器为管理用户颁发令牌。管理用户使用 UI 来管理(例如创建、锁定、解锁等)业务用户,即他们使用 1. 的服务和 2. 发行的令牌。

0 投票
1 回答
1388 浏览

java - ResourceOwnerPasswordResourceDetails 与 Oauth2RestTemplate,设置用户名和密码

我目前正在使用我的控制器配置我的 Oauth2RestTemplate。所述控制器将接收要在 ResourceOwnerPasswordResourceDetails 中设置的用户用户名和密码,但是,我没有看到这是如何设置的。此应用程序用于 Oauth2 客户端设置。

正如所见,从我的“verifyCredential”中,我传递了映射到数据映射器 LoginCredential 的凭据。此类具有用户的“用户名”、“密码”和“令牌”属性。在这一点上,我认为将 LoginCredential 的对象属性传递给 OAuth2RestTemplate loginCredentialRest 会很容易,但事实并非如此。

此外,我还使用访问令牌端点 (accessTokenUri) 配置了 ResourceOwnerPasswordResourceDetails,并且基本上将此对象连接到 Oauth2RestTemplate。我将如何使用它向访问令牌端点发出请求,为访问令牌提供“用户名”、“密码”和“令牌”?

0 投票
1 回答
585 浏览

java - 如何使用提供的客户端 ID 和客户端密码提供对受保护端点的访问?

我有一个使用 OAuth 的应用程序。身份验证包含 2 个步骤:获取访问令牌,使用提供的访问令牌发出请求。

是否可以配置 Spring Security 以通过提供的客户端 ID 和客户端密码作为请求参数提供访问,例如https://localhost.com/api/endpoint?client_id=xxxx&client_secret=yyyy

0 投票
0 回答
9262 浏览

java - Spring-Security-Oauth2: java.lang.NoClassDefFoundError: org/springframework/security/authentication/InternalAuthenticationServiceException

我正在尝试使用基于 java 的配置将 Oauth2.0 与 Spring Security 集成到 Web 应用程序中。但是当我尝试调整示例应用程序时,我会抛出如下异常:

以下是我的 Spring 数据,基于 Java 的配置代码:

}

以下是我的 Oauth2.0 集成代码:

提前感谢您的解决方案。我陷入了这个问题。