具有 spring 安全性的 JWT 身份验证 graphql-spqr
JWT Authentication graphql-spqr with spring security
我在 spring 引导应用程序中使用 graphql-spqr-spring-boot-starter,版本 0.0.5。
@GraphQLApi 和@GraphQLQuery 工作正常,我也在 /gui 上获取数据。
但是正如许多人所面临的那样,我正在尝试在 graphql 服务器调用上应用身份验证部分。我在我的 REST API authorization/authentication.
应用程序中使用 JWT 令牌
所以我有令牌,我想它也可以在这里用于验证。
我试过使用:
@PreAuthorize("hasRole('ROLE_RECRUITER_HR')")
但它给出了编译时错误:
io.leangen.graphql.metadata.exceptions.TypeMappingException: The
registered object of type com.sun.proxy.$Proxy90 appears to be a
dynamically generated proxy
对于这些和其他可能的问题,是使用像 spring-boot-starter 这样的包装器 graphql 库更好,还是使用 graphql-spqr 更安全,我手上的步骤更多。
编辑:GraphQL SPQR Spring Boot starter v0.0.6 修复了问题,应该开箱即用。
这是启动器中的错误。当使用 JDK 代理(而不是 CGLib)时,它不能正确检测类型。我将确保在下一个版本中修复此问题。
有几种方法可以暂时解决这个问题,但不幸的是,none 其中的方法很好。
你可以,例如通过例如
强制 Spring 使用 CGLIB
@EnableAspectJAutoProxy(proxyTargetClass = true)
但这可能会产生广泛的影响,因此我建议您稍等片刻。我将在几天内发布一个修复的新版本,因为这是一个 非常 重要的错误。
我在 spring 引导应用程序中使用 graphql-spqr-spring-boot-starter,版本 0.0.5。
@GraphQLApi 和@GraphQLQuery 工作正常,我也在 /gui 上获取数据。
但是正如许多人所面临的那样,我正在尝试在 graphql 服务器调用上应用身份验证部分。我在我的 REST API authorization/authentication.
应用程序中使用 JWT 令牌所以我有令牌,我想它也可以在这里用于验证。
我试过使用:
@PreAuthorize("hasRole('ROLE_RECRUITER_HR')")
但它给出了编译时错误:
io.leangen.graphql.metadata.exceptions.TypeMappingException: The registered object of type com.sun.proxy.$Proxy90 appears to be a dynamically generated proxy
对于这些和其他可能的问题,是使用像 spring-boot-starter 这样的包装器 graphql 库更好,还是使用 graphql-spqr 更安全,我手上的步骤更多。
编辑:GraphQL SPQR Spring Boot starter v0.0.6 修复了问题,应该开箱即用。
这是启动器中的错误。当使用 JDK 代理(而不是 CGLib)时,它不能正确检测类型。我将确保在下一个版本中修复此问题。 有几种方法可以暂时解决这个问题,但不幸的是,none 其中的方法很好。
你可以,例如通过例如
强制 Spring 使用 CGLIB@EnableAspectJAutoProxy(proxyTargetClass = true)
但这可能会产生广泛的影响,因此我建议您稍等片刻。我将在几天内发布一个修复的新版本,因为这是一个 非常 重要的错误。