使用 OpenID Connect Gluu 身份验证提供程序来保护 Spring Boot Web App 客户端

Use OpenID Connect Gluu authentication provider to secure Spring Boot Web App client

我已遵循本指南 http://spring.io/guides/tutorials/spring-boot-oauth2 并且可以让它与 Facebook 和 Github 一起使用,但我想使用 GLuu 作为我的内部身份验证提供程序来与我的 [=42] 进行 OpenID 连接=] 启动网络应用程序。我将 Gluu 配置为 return 两种响应类型 授权码授予类型和 ID 令牌,我将身份验证方法设置为 client_secret_basic。我不确定我必须在 spring 客户端 Web 应用程序端做哪些额外的配置,但我认为根据指南我可以做一个最小配置并设置

安全。oauth2.client.client-id=

安全。oauth2.client.client-秘密=

security.oauth2.client.access-token-uri=https://mygluuServer/oxauth/seam/resource/restv1/oxauth/token

security.oauth2.client.user-authorization-uri=https://mygluuServer/oxauth/seam/resource/restv1/oxauth/authorize

安全。oauth2.resource.user-info-uri=https://mygluuServer/oxauth/seam/resource/restv1/oxauth/userinfo

安全。oauth2.client.scope=openid

当我导航到我的 spring 启动网络应用程序时,我被重定向到 gluu 进行身份验证,但在我进行身份验证后,它不会提示我批准共享我的 openid 信息,它只是将我重定向回spring 启动应用程序并给我错误.. 身份验证失败:无法获取访问令牌

有没有人成功使用 Gluu 来保护使用 OpenID Connect 的 spring 启动网络应用程序?

好的,我终于明白我的问题是什么了。出于某种原因,BadCredentialsException 掩盖了真正的错误,即 Java 不想通过与令牌端点的安全连接与 Gluu 交谈,因为 java 不信任 Gluu 证书。 Gluu 处于 client_secret_post 身份验证模式,我的 spring 引导客户端使用属性

安全。oauth2.client.authentication-scheme=形式

security.oauth2.client.client-authentication-scheme=form

既然我已经将 Gluu 证书导入到我的 jvm 的 cacerts java 密钥库中,一切都很好。我只想将它导入信任库并用我的 application.properties 指向它,但我目前遇到了问题。