我在我的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。
1条答案
按热度按时间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