当前位置: 首页 > 知识库问答 >
问题:

quarkus oauth2 auth0

荀靖
2023-03-14

我正在尝试让auth0与quarkus一起工作:

我使用过的资源是:

https://github . com/quarkusio/quarkus-quick starts/tree/main/security-oauth 2-quick start

https://quarkus.io/guides/security-oauth2

当我转到我的/auth/login页面时,我重定向到我的Auth0租户进行登录,它会正确地将我重定向回我的登录页面。

包含相关信息的示例 URL:

https://tenant.us.auth0.com/authorize?response_type=code

然后我登陆着陆页,网址中有一个令牌:

? code=AT3rTCtZ_PixmX0l

然后我转到运行我从快速入门(上面)“许可所有”中获得的示例代码的url

这是我的结果:hello anonymous,isSecure:true,authScheme:null

设置:

quarkus.oauth2.client-id=xxxxx

quarkus.oauth2.client-secret=xxxxx

quarkus.oauth2.introspection-url=https://tenant.us.auth0.com/intropect

代码:

@Path("/secured")
public class TokenSecuredResource {

  private static final Logger LOG = Logger.getLogger(TokenSecuredResource.class);

  @GET
  @Path("permit-all")
  @Produces(MediaType.TEXT_PLAIN)
  @PermitAll
  public String hello(@Context SecurityContext ctx) {
    Principal caller = ctx.getUserPrincipal();
    String name = caller == null ? "anonymous" : caller.getName();

    String helloReply = String.format("hello + %s, isSecure: %s, authScheme: %s", name, ctx.isSecure(),
        ctx.getAuthenticationScheme());
    return helloReply;
  }

  @GET()
  @Path("roles-allowed")
  @RolesAllowed({ "hsp" })
  @Produces(MediaType.TEXT_PLAIN)
  public String helloRolesAllowed(@Context SecurityContext ctx) {
    LOG.info(ctx);
    Principal caller = ctx.getUserPrincipal();

    LOG.info(caller);
    String name = caller == null ? "anonymous" : caller.getName();
    String helloReply = String.format("hello + %s, isSecure: %s, authScheme: %s", name, ctx.isSecure(),
        ctx.getAuthenticationScheme());
    return helloReply;
  }
}

主要问题:我看不到适当的安全上下文信息的原因是什么?

后续问题:

    < li >理论上,我需要做的就是查看一些合适的值吗? < li >我需要启用会话或管理cookies吗? < li >还有其他建议吗?

共有1个答案

钱嘉致
2023-03-14

不幸的是,auth0当前不支持带有内省endpoint的不透明令牌验证。

具有侦测endpoint的不透明令牌验证

所以我认为在这种情况下,问题是给QUKUS的自省URL不起作用。

 类似资料:

相关问答

相关文章

相关阅读