Jersey未触发ContainerRequestFilter
我正在尝试使用ContainerRequestFilter在基于Grizzly的Jersey应用程序上强制执行一些身份验证 我通过扩展PackageResourceConfig创建自己的资源配置:Jersey未触发ContainerRequestFilter,jersey,grizzly,Jersey,Grizzly,我正在尝试使用ContainerRequestFilter在基于Grizzly的Jersey应用程序上强制执行一些身份验证 我通过扩展PackageResourceConfig创建自己的资源配置: public class MainResourceConfig extends PackagesResourceConfig { public MainResourceConfig() { super("za.co.quinn.ws"); Map<Str
public class MainResourceConfig extends PackagesResourceConfig {
public MainResourceConfig() {
super("za.co.quinn.ws");
Map<String, Object> properties = getProperties();
properties.put(
"com.sun.jersey.spi.container.ContainerRequestFilter",
"com.sun.jersey.api.container.filter.LoggingFilter;" + MainRequestFilter.class.getName()
);
properties.put(
"com.sun.jersey.spi.container.ContainerResponseFilters",
"com.sun.jersey.api.container.filter.LoggingFilter;" + MainResponseFilter.class.getName()
);
}
}
响应筛选器用于标题:
@Override
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
response.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
response.getHttpHeaders().add("Access-Control-Allow-Methods", "GET, HEAD, POST, DELETE, PUT");
response.getHttpHeaders().add("Access-Control-Allow-Headers", "Authorization, Content-Type");
return response;
}
不会触发MainResponseFilter,但不会触发ContainerRequestFilter
“不会触发MainResponseFilter,但不会触发ContainerRequestFilter。”
看看你的属性,主要是它的发送,并比较它们
...container.ContainerRequestFilter"
...container.ContainerResponseFilters"
您缺少请求筛选器的s
。为了避免这样的拼写错误,可以使用常量
getContainerRequestFilters().add(new YourRequestFilter());
getContainerResponseFilters().add(new YourResponseFilter());
getContainerRequestFilters().add(new YourRequestFilter());
getContainerResponseFilters().add(new YourResponseFilter());