Dropwizard管理员安全

有没有办法给管理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) kadminFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/admin/*")