我正在将spring-boot / security与AWS Cognito集成在一起。用户成功登录,aws cognito将用户名,权限和用户属性发送到我的spring应用程序。问题是我无法使用jackson-databind json或yaml将返回的数据检索或映射到java类/对象。我需要从返回的数据中提取用户的电子邮件。这是cognito发送到我的应用程序的示例数据。
名称:[aaXXXXX-38af-XXXX-XXXX-b5497XXXXX78],授予的权限:[ROLE_USER],用户属性:[at_hash = Hfqq0tGXXXXXXXXGlRQ,sub = XXXXXX-38af-XXXX-ba30-b549XXXXX278,aud = [5XXXXXoXXXXXX948k email_verified = true,token_use = id,auth_time = 1561024200,iss = https://cognito-idp.us-east-1.amazonaws.com/us-east-1_xOXUWQCE3,cognito:username = aaXXXXX-38af-XXXX-XXXX-b5497XXXXX78,exp = 2019-06-20T10:50:00Z,iat = 2019- 06-20T09:50:00Z,email = rohitksethi @ gmail.com,用户名= aaXXXXX-38af-XXXX-XXXX-b5497XXXXX78]
尝试过杰克逊绑定yml和json,但都无法解析返回的数据
身份验证身份验证= SecurityContextHolder.getContext()。getAuthentication();
ObjectMapper oMapper = new ObjectMapper(new YAMLFactory());
oMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
CustomUserDetail user = oMapper.readValue(authentication.getPrincipal().toString(), CustomUserDetail.class);
发生意外错误(类型=内部服务器错误,状态= 500)。 在“阅读器”第1行第1列中解析块映射时,名称:[aa90e2b6-xxxxx-xxxx-ba30-b ... ^预期,但在“阅读器”第1行第45列中找到了“,”: ... 2b6-xxxxf-xxxx-ba30-bxxxxxx278],授予的权限:[ROLE_USE ... ^,位于[来源:(StringReader);行:1,列:45] com.fasterxml.jackson.dataformat.yaml.snakeyaml.error.MarkedYAMLException:解析块映射时 在“阅读器”的第1行,第1列: 名称:[aa90e2b6-38af-43d6-ba30-b ... ^ 预期,但找到了',' 在“阅读器”的第1行第45列中: ... 2b6-xxxx-xxxx-ba30-bxxxxxxx78],授予的权限:[ROLE_USE ...