2016-04-13 8 views
0

adminサーブレットにログインセキュリティを追加する方法はありますか?Dropwizard admin security

V0.7であなたのYAMLファイルに次の2を追加することができますように思える: :私は、最新バージョン(0.9.2)で、それは言って私にエラーを与えることを試みたが

adminUsername: user1234 
    adminPassword: pass5678 

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 
+0

[構成の参考文献](http://www.dropwizard.io/0.9.2/docs/manual/configuration.html#servers)には、この2つのフィールドについては言及していません。だからおそらく彼らはもう彼らをサポートしていないでしょう。 – zloster

+0

管理者セキュリティを追加する別の方法はありますか? – user3711455

+0

おそらく、いくつかのセミカスタムコードがあります。 [その例](http://www.dropwizard.io/0.9.2/docs/manual/auth.html#basic-authentication)を参照してください。 – zloster

答えて

0

アプリケーションが単一のポートを利用できるようにするHeroku上のアプリケーションを実行します。 (まだKotlin、あなたがそれを使用する必要があります)私はBasicAuthFilterでこのパスを保護し、その後

environment.applicationContext.apply { 
    setAttribute(MetricsServlet.METRICS_REGISTRY, environment.metrics()) 
    setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY, environment.healthChecks()) 
    addServlet(NonblockingServletHolder(AdminServlet()), "/admin/*") 
} 

:私は私のアプリケーション(Kotlin)のrun()方法で、このメインHTTPポート(8080)にAdminServletを添付します:

val basicAuthFilter = BasicAuthFilter("admin", configuration.adminUsername, configuration.adminPassword) 
val adminFilter = environment.servlets().addFilter("AdminFilter", basicAuthFilter) 
kadminFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/admin/*")