微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 Oauth2.0 合并到现有的 Java Spring Web MVC 和 REST 项目中?

如何解决如何将 Oauth2.0 合并到现有的 Java Spring Web MVC 和 REST 项目中?

我有一个动态 Web 应用程序,它以 Java 作为后端(spring web MVC jars + REST jars),由一个身份验证 Servlet 和一个用于应用程序中其他功能的控制器 servlet 控制。 它有 java 脚本和 html 作为前端。 该项目有 WebContent 文件夹,其中包含 rest-servlet.xml 和 web.xml 以及其他前端文件

现在我需要实现 Oauth2.0 来替换 Authentication Servlet 中的 SSO。在下面的代码中,我应该使用来自 OAuth2.0 流程实现代码的 JSON 响应,而不是从标头中获取详细信息。

@Override
public void doGet(HttpServletRequest req,HttpServletResponse response) throws servletexception,IOException
{
String digest  = req.getHeader("Authorization");//need to remove this

//Pull PXED headers
String id = req.getHeader("IAMUSERID"); //need to remove this
String firstName = req.getHeader("IAMUSERFirsTNAME"); //need to remove this
String lastName = req.getHeader("IAMUSERLASTNAME");//need to remove this
String groups = req.getHeader("IAMUSERGROUPMEMBERSHIP");//need to remove this

}

现在 PXED 团队为我提供了在 POSTMAN 中获取此 JSON 响应的步骤。他们提供的步骤:

  1. 设置授权类型为授权码设置授权类型为 Oauth2.0
  2. 设置回调网址(这是我应用的开发网址)
  3. 设置 PXED 团队提供的授权 URL
  4. 设置 PXED 团队提供的令牌 URL
  5. 设置 PXED 团队提供的客户端 ID - APP_client
  6. 设置 PXED 团队提供的客户端密钥
  7. 点击“获取新的访问令牌”
  8. 复制令牌并将此令牌粘贴到另一个长 URL 的末尾
  9. POST 设置为最后一步 URL 的 HTTP 方法,并将授权类型更改为基本身份验证。
  10. 设置 PXED 团队提供的用户名和密码 - APP_validate 和密码
  11. 发送请求
  12. 收到包含所有详细信息的 JSON 响应。

到目前为止,我已经探索并失败了:

  1. Spring Boot Security(我无法实现这一点,因为我无法更改架构)
  2. 带有 OpenID Connect 的 Nimbus OAuth 2.0 SDK:https://connect2id.com/products/nimbus-oauth-openid-connect-sdk/examples/oauth/token-request
  3. Apache OLTU(已停用,但我仍然无法在对象中设置正确的详细信息):https://oltu.apache.org/apidocs/oauth2/reference/org/apache/oltu/oauth2/client/package-summary.html

我只需要在后端实现此代码。 请帮助我使用正确且安全的库来实现 OAuth2.0。 另外,如果您熟悉NIMBUS OAUTH 2.0 SDK,能否帮我在正确的类中设置步骤中的详细信息?

解决方法

一种选择是为您使用 gateway to handle the OAuth dance,然后您的应用程序只需要验证访问令牌(OAuth 术语中的“资源服务器”)。

该链接帖子使用 Spring Cloud Gateway,但其他网关/代理的工作方式相同。 (这篇文章还使用了一个 servlet 过滤器,可以通过您正在使用的框架进行简化)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。