繁体   English   中英

使用来自 vertx-web 的 Vert.x `AuthenticationHandler`,我们为每次调用都访问身份验证提供程序?

[英]Using Vert.x `AuthenticationHandler` from vertx-web, we hit the authentication provider for every call?

我正在为我的 web 服务使用 Vert.x,其中一部分需要授权。 我已经设置了一个AuthenticationHandler (使用vertx-auth-oath2的 OAuth2 实现)来监听受保护的路径(比如说"/*" )并且它被正确调用,向身份验证提供者发送重定向,它重定向回来和然后正确地传递给真正的处理程序。 这很好用。

但是下次我们调用受保护的端点时——它会再次执行整个操作。 我在抽象AuthenticationHandlerImpl class 中看到它检查上下文是否已经有一个user()如果是的话 - 将不会运行实际的 auth 处理程序,这是我需要的行为 - 但它显然不会发生,因为每次调用都是带有新RoutingContext的新请求。

跨请求保留User object 的“正确”方法是什么,以便身份验证处理程序会很高兴?

我猜它与 session 存储有关,但我从未使用过它 - 直到现在我一直在使用自定义“API 密钥”样式的解决方案,我正在尝试以“正确的方式 (tm) “在这个新项目中。

我使用的是最新的 Vert.x 4.3.5。

您将需要 CookieHandler 和 SessionHandler 来存储和处理 session 与用户。 这将与提供的 vertx-auth-oath2 开箱即用。

这是一个帮助您入门的简单示例: https://github.com/vert-x3/vertx-examples/blob/master/web-examples/src/main/java/io/vertx/example/web/auth/服务器.java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM