Dropwizard 管理安全
Dropwizard admin security
有没有办法向管理 servlet 添加登录安全性?
好像在 V0.7 中,您可以将以下两个添加到您的 yaml 文件中:
adminUsername: user1234
adminPassword: pass5678
但是我在最新版本 (0.9.2) 中尝试过,它给我一个错误提示:
server.yaml 有错误:
* Unrecognized field at: server.adminConnectors.[0].adminUsername
Did you mean?:
- soLingerTime
- bindHost
- idleTimeout
- useServerHeader
- useDateHeader
[14 more]
这就是我所拥有的:
adminConnectors:
- type: http
port: 9180
adminUsername: user1234
adminPassword: pass5678
我 运行 Heroku 上的一个应用程序,它只允许应用程序提供一个端口。我在我的应用程序 (Kotlin) 的 run()
方法中将 AdminServlet
附加到主 HTTP 端口 (8080):
environment.applicationContext.apply {
setAttribute(MetricsServlet.METRICS_REGISTRY, environment.metrics())
setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY, environment.healthChecks())
addServlet(NonblockingServletHolder(AdminServlet()), "/admin/*")
}
然后,我用BasicAuthFilter
保护这个路径(还是Kotlin,你应该用它):
val basicAuthFilter = BasicAuthFilter("admin", configuration.adminUsername, configuration.adminPassword)
val adminFilter = environment.servlets().addFilter("AdminFilter", basicAuthFilter)
adminFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/admin/*")
有没有办法向管理 servlet 添加登录安全性?
好像在 V0.7 中,您可以将以下两个添加到您的 yaml 文件中:
adminUsername: user1234
adminPassword: pass5678
但是我在最新版本 (0.9.2) 中尝试过,它给我一个错误提示: server.yaml 有错误:
* Unrecognized field at: server.adminConnectors.[0].adminUsername
Did you mean?:
- soLingerTime
- bindHost
- idleTimeout
- useServerHeader
- useDateHeader
[14 more]
这就是我所拥有的:
adminConnectors:
- type: http
port: 9180
adminUsername: user1234
adminPassword: pass5678
我 运行 Heroku 上的一个应用程序,它只允许应用程序提供一个端口。我在我的应用程序 (Kotlin) 的 run()
方法中将 AdminServlet
附加到主 HTTP 端口 (8080):
environment.applicationContext.apply {
setAttribute(MetricsServlet.METRICS_REGISTRY, environment.metrics())
setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY, environment.healthChecks())
addServlet(NonblockingServletHolder(AdminServlet()), "/admin/*")
}
然后,我用BasicAuthFilter
保护这个路径(还是Kotlin,你应该用它):
val basicAuthFilter = BasicAuthFilter("admin", configuration.adminUsername, configuration.adminPassword)
val adminFilter = environment.servlets().addFilter("AdminFilter", basicAuthFilter)
adminFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/admin/*")