我们有一个kotlin代码,如下所示,我试图禁用API的options方法,如下所示:使用Javalin(3.12.0),但是它也会阻塞所有其他方法,如get和post。我在这里错过了什么?
val app = Javalin.create {
it.defaultContentType = "application/json"
it.enableWebjars()
it.addStaticFiles("", Location.CLASSPATH)
it.enableCorsForAllOrigins()
it.dynamicGzip = true
}
app.options("/*") {ctx -> ctx.status(405)}
app.routes {
path("/auth") {
post("/login") {
Auth.doLogin(it)
}
get("/metrics") {
val results = getData()
it.json(results)
}
}还有两个问题。1.想要使用下面的代码为get APi实现20次请求一个小时的比率分隔
app.get("/") { ctx ->
RateLimit(ctx).requestPerTimeUnit(5, TimeUnit.MINUTES) // throws if rate limit is exceeded
ctx.status("Hello, rate-limited World!")
}如何实现这一目标?
发布于 2022-02-07 16:37:45
为了Jetty..。
Jetty中只有一个速率限制概念,那就是org.eclipse.jetty.server.AcceptRateLimit,它作为Jetty添加到ServerConnector中,它不能为特定的请求端点调整速率,只能对整个连接器进行调整。
如果您想要特定的端点速率,那么org.eclipse.jetty.servlets.QoSFilter就是使用Jetty的方式。
用于org.eclipse.jetty.server.HttpConfiguration的org.eclipse.jetty.server.ServerConnector包含启用/禁用服务器公告的控件。
看见
HttpConfiguration.setSendServerVersion(boolean)HttpConfiguration.setSendXPoweredBy(boolean)HttpConfiguration.setSendDateHeader(boolean)https://stackoverflow.com/questions/70845919
复制相似问题