在邮递员的每一个请求中,Vertx处理程序都会打两次电话。
我有两个处理程序,在调用请求处理处理程序之前将被调用。一个是设置头,一个是验证用户,但两个都是调用两次。
@Log4j2
public class BaseResponseHandler implements Handler<RoutingContext> {
@Override
public void handle(RoutingContext context) {
HttpServerResponse response = context.response();
log.info("Inside BaseResponse Handler!");
response.putHeader("Content-Security-Policy",
"script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'")
// do not allow proxies to cache the data
.putHeader("Cache-Control", "no-store, no-cache")
.putHeader("X-Content-Type-Options", "nosniff")
.putHeader("Strict-Transport-Security", "XYZ")
.putHeader("X-Download-Options", "XYZ")
.putHeader("X-XSS-Protection", "XYZ")
.putHeader("X-FRAME-OPTIONS", "XYZ");
response.setChunked(true);
context.next();
}
}
我在httpServerVerticle中的代码片段
router.route().order(1).handler(new BaseResponseHandler());
router.route().order(0).handler(new AuthenticationHandler()::authenticate);
在我得到的日志中
10:09:54.214 [vert.x-eventloop-thread-4] [%vcl] DEBUG *.handlers.TokenHandler - User is Authenticated : io.vertx.ext.auth.jwt.impl.JWTUser@7855ebfa
10:09:54.215 [vert.x-eventloop-thread-4] [%vcl] INFO *.handlers.BaseResponseHandler - Inside BaseResponse Handler!
10:09:54.243 [vert.x-eventloop-thread-4] [%vcl] DEBUG *.handlers.TokenHandler - User is Authenticated : io.vertx.ext.auth.jwt.impl.JWTUser@5fb3053a
10:09:54.243 [vert.x-eventloop-thread-4] [%vcl] INFO *.handlers.BaseResponseHandler - Inside BaseResponse Handler!
从你的日志中,我看到了2个用户对象实例id(来自类名后的hashcode),所以我猜你确实看到了2个请求。这可以是预飞行检查,第二个是真正的请求。
尝试记录超文本传输协议方法。如果第一个是OPTIONS,那么它确实是飞行前检查。
我正在使用Vert。后端为x,前端为AngularJS。 Vert. x服务器使用POST和GET方法接收HTTP操作。不知何故,我为每个请求获取不同的会话ID。 以下是来自我的LoginFormHandler类句柄例程的代码片段。 我正在将用户对象放入当前会话中。然后我移动到新页面并向Vert. x服务器发送POST请求。在那个POST处理程序中,我正在尝试获取会话对象: 我没有得到用户。此外,
Spring 4.1和Spring Security 3.2:我们实现了一个自定义身份验证提供程序,如果用户输入了错误的密码,它会抛出一个Bad凭据异常。当抛出Bad凭据异常时,将调用ProviderManager.authenticate方法,该方法将再次调用自定义身份验证中的身份验证方法。当抛出LockedException时,不会再次调用自定义身份验证提供程序中的Authenate方法。我们
如何在处理正文请求之前验证身份验证? 我正在使用vertx: 我想在处理正文请求之前验证身份验证。但我得到了错误的java。lang.IllegalStateException:请求已被读取 使用暂停功能上的延迟复制: 当运行delay(100)时(这是验证过程的示例),我得到了上面的错误。如果我对延迟(100)进行注释,它可以正常工作。
我正在尝试在Dropwizard web应用程序中实现OAuth2身份验证。我已经创建了所需的<code>验证器 我所需的行为是,在我的客户端通过在我的登录页面上提供他/她的凭据登录后,我想将客户端重定向到我使用Dropwizard Views创建的问候语页面,并且路径为“/me”,如下所示: 我的问候资源如下所示: 目前,我得到一个“访问此资源需要凭据。”登录后的响应。在阅读了一些关于令牌认证的
我试图将用于需要基本HTTP身份验证的第三方服务。我正在使用。以下是我到目前为止的结论:
我正在将swagger应用于我的一个项目。 然后,他们应该在标头中随每次调用一起发送此令牌。 所以它就像: 看看swagger文档,它似乎只是为了处理OAuth而设置的。有没有办法让swagger以我的方式处理身份验证?我的意思是在生成的代码中。我可以为项目生成代码,它只有“Basic:...”作为选项。