Java 使用jersey 1.1x和csrf过滤器创建webservice
我需要使用jersey server 1.17开发一个java REST webapp,我的资源需要避免csrf(跨站点请求伪造)攻击,我知道jersey中存在一个可以这样做的类,这个类是csrfProtectionFilter,所以我需要用这个过滤器检查每个请求,但我不知道在哪里以及如何插入这个声明,我知道我必须把它放在web.xml中,但我还看不到任何好的结果,我正在尝试用这个web.xml修改一个jersey示例Java 使用jersey 1.1x和csrf过滤器创建webservice,java,rest,jersey,Java,Rest,Jersey,我需要使用jersey server 1.17开发一个java REST webapp,我的资源需要避免csrf(跨站点请求伪造)攻击,我知道jersey中存在一个可以这样做的类,这个类是csrfProtectionFilter,所以我需要用这个过滤器检查每个请求,但我不知道在哪里以及如何插入这个声明,我知道我必须把它放在web.xml中,但我还看不到任何好的结果,我正在尝试用这个web.xml修改一个jersey示例 <servlet> <servlet-name&g
<servlet>
<servlet-name>com.sun.jersey.samples.servlet.resources.MyApplication</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.sun.jersey.samples.servlet.resources.MyApplication</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.CsrfProtectionFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>com.sun.jersey.samples.servlet.resources.MyApplication</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
com.sun.jersey.samples.servlet.resources.MyApplication
com.sun.jersey.spi.container.servlet.ServletContainer
javax.ws.rs.Application
com.sun.jersey.samples.servlet.resources.MyApplication
com.sun.jersey.spi.container.ContainerRequestFilters
com.sun.jersey.api.container.filter.CsrfProtectionFilter
1.
com.sun.jersey.samples.servlet.resources.MyApplication
/资源/*
30
我忘了什么吗?谢谢。您需要将其添加到应用程序类中,如下所示:
@Application("/")
public class MyApplication extends ResourceConfig {
public MyApplication() {
super(YourResourceOrResources.class, CsrfProtectionFilter.class);
}
}
我发现(几个月前!),答案如下:
<servlet>
<description></description>
<display-name>Jersey REST Service</display-name>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.CsrfProtectionFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
泽西岛休息服务
泽西岛休息服务
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.api.json.POJOMappingFeature
真的
com.sun.jersey.spi.container.ContainerRequestFilters
com.sun.jersey.api.container.filter.CsrfProtectionFilter
1.
泽西岛休息服务
/原料药/*