Filter Dermaga Khusus di Dropwizard

Saya mencoba menambahkan filter header khusus di instance Dropwizard saya untuk memeriksa apakah versi permintaan disinkronkan ke versi instance Dropwizard.

Saya melihat Anda dapat menggunakan FilterBuilder untuk menambahkan dermaga CrossOriginFilters. Namun, saya kesulitan mencari tahu cara menyetel filter khusus.

Terima kasih


person jbenowitz    schedule 03.10.2013    source sumber


Jawaban (2)


Melalui kelas Lingkungan.

https://dropwizard.github.io/dropwizard/manual/core.html#environments

@Override
public void run(MyApplicationConfiguration configuration, Environment environment) {
    environment.servlets().addFilter("Custom-Filter-Name", new MyCustomFilter()).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
}

Anda dapat memilih jenis Pengiriman dengan mengubah EnumSet.allOf(DispatcherType.class)

person dom farr    schedule 08.11.2013
comment
di dropizard 0.7+ baru dilakukan seperti ini: environment.servlets().addFilter(/*, new CrossOriginFilter()); - person Maksim; 03.04.2014
comment
@ Maksim. Itu tidak benar. Parameter pertama addFilter di 0.7.x dropwizard adalah nama filter, bukan pemetaannya. Perlu panggilan ke addMappingForUrlPatterns(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter,String... urlPatterns) - person dom farr; 08.04.2014

Beginilah cara saya membuatnya berfungsi menggunakan Dropwwizard 0.7.1 (API tampaknya telah berubah dari contoh lain yang saya temukan di sana)

Metode yang sedang dijalankan pada aplikasi Anda:

final FilterRegistration.Dynamic cors = environment.servlets().addFilter("crossOriginRequsts", CrossOriginFilter.class);
cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");

https://Gist.github.com/craigbeck/fb71818063175b9b4210

person craigb    schedule 11.07.2014