oauth2.0 使用vertx-web中的Vert.x 'AuthenticationHandler',我们会为每个调用找到身份验证提供程序吗?

igetnqfo  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(129)

我在我的Web服务中使用Vert.x,其中一部分需要授权。我设置了一个AuthenticationHandler(使用vertx-auth-oath2的OAuth2实现)来监听受保护的路径(比如"/*"),它被正确调用,发送一个重定向到身份验证提供程序,该提供程序重定向回来,然后正确地重定向到真实的的处理程序。这工作得很好。
但是下次我们调用受保护的端点时--它会再次执行整个操作。我看到在抽象的AuthenticationHandlerImpl类中,它会检查上下文是否已经有user(),如果有--将不会运行实际的auth处理程序,这正是我需要的行为--但显然不会发生,因为每次调用都是一个带有新RoutingContext的新请求。
什么是跨请求保留User对象的“正确”方法,这样auth处理程序才会满意?
我猜它与会话存储有关,但我从未使用过它--直到现在,我一直在使用自定义的“API key”风格的解决方案,我正在尝试在这个新项目中使用“The Right Way(tm)”。
我用的是最新的Vert.x 4.3.5。

qij5mzcb

qij5mzcb1#

您将需要CookieHandler和SessionHandler来存储和处理与用户的会话。这将通过提供的vertx-auth-oath 2开箱即用。
下面是一个简单的示例,可以帮助您入门:https://github.com/vert-x3/vertx-examples/blob/master/web-examples/src/main/java/io/vertx/example/web/auth/Server.java

相关问题