我正在使用Play Framework 2.5.12(Java版)。 当我声明一个过滤器(Filters1)并在application.conf中的config下设置时:
play.http.filters = my.filter.path.Filters1
它工作正常。
但是我有两个过滤器:
在Play Framework 2.6中,解决方案是:
play.http.filters += my.filter.path.Filters1
play.http.filters += my.filter.path.Filters2
我已经尝试过了,但是在Play Framework 2.5中不起作用。 您有什么解决办法?
答案 0 :(得分:2)
最后,我无法在application.conf中处理此问题。
解决方案:
您必须将过滤器作为参数传递给Filters1的构造函数,并将其设置为EssentialFilters。
这是我的Filters1类别:
A = (30.1:0.1:30.5)';
I = (324:328)';
Angle = (35:5:55)';
FWHM = (0.2:0.05:0.4)';
d = table(A,I,Angle,FWHM);
t1 = d.A + d.I;
t2 = d{:,1} + d{:,2};
和Filters2类:
import com.rh.ot.web.core.filters.CustomFilter;
import play.Environment;
import play.filters.gzip.GzipFilter;
import play.filters.headers.SecurityHeadersFilter;
import play.http.DefaultHttpFilters;
import play.mvc.EssentialFilter;
import javax.inject.Inject;
import javax.inject.Singleton;
@Singleton
public class Filters1 extends DefaultHttpFilters {
private final Environment env;
private EssentialFilter[] filters;
@Inject
public Filters(Environment env, GzipFilter gzipFilter, SecurityHeadersFilter securityHeadersFilter, Filters2 filters2) {
super(securityHeadersFilter);
this.env = env;
filters = new EssentialFilter[]{gzipFilter.asJava(), filters2.asJava()};
}
public EssentialFilter[] filters() {
return filters;
}
}