java - 如何验证从 Cognito 获得的 jwt token

标签 java amazon-web-services spring-boot jwt amazon-cognito

我有一个 jwt token ,是我在用户登录后从 cognito 检索到的。

我的应用程序中有一个特定的 api 端点,我希望只有具有有效 jwt 的用户才能访问该端点。我尝试查看网络上的各种资源,但我什么都看不懂。我是 jwt 概念的新手。

PS 我有一个 Java 应用程序 (spring boot)。如果有人能详细描述验证我的 jwt 需要遵循的步骤,我将不胜感激。如果可能,请提供代码。

@CrossOrigin
@RequestMapping(value= "/login", method=RequestMethod.POST,consumes="application/json")
@ResponseBody
public String authenticate(@RequestBody SignInDTO signInDetails)
{
    //boolean isAuthenticated=false;
        CognitoHelper cognitoHelper=new CognitoHelper();
        String authResult=cognitoHelper.ValidateUser(signInDetails.getEmailId(), signInDetails.getPassword());
.....
.....
.....

authResult 是我从 cognito 获得的 jwt。在此之后,我完全不知道需要做什么。

最佳答案

Spring Security 5.1 引入了对此的支持,因此它更容易实现。参见 https://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#oauth2resourceserver

基本上:

  1. 按照 https://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#dependencies 中的说明添加依赖项
  2. 按照 https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2resourceserver-jwt-minimalconfiguration 中的说明添加 yml 配置.对于 cognito,请使用以下网址:https://cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>
  3. 您可能需要按照 https://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#oauth2resourceserver-sansboot 中的说明编辑您的安全配置

关于java - 如何验证从 Cognito 获得的 jwt token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49488538/

相关文章:

java - 第一次用户输入尝试无效(Java)

java - 如何在远程系统上并行执行

java - spring-boot gradle 插件搞乱了 ivy 依赖配置?

java - 使用docker和java spring时keycloak认证问题

java - 没有断点的调试命中 - Eclipse

c++ - C++ 编译器 g++.exe 无法编译简单的测试程序 - 确定 CXX 编译器是否工作失败

java - 当用户注册时,Amazon cognito 是否会自动检查他们的电子邮件是否已存在?

amazon-web-services - Cloudformation脚本生成 "No subnets found for the default VPC"

maven - Dart 与 Maven(在 Spring Boot 应用程序中)

java - Spring AOP 和 Final 类抛出问题 "Could not generate CGLIB subclass"