6.1. 使用Spring Security保护Jersey端点
可以使用Spring Security来保护基于Jersey的Web应用程序,其方式与用来保护基于Spring MVC的Web应用程序的方式几乎相同。但是,如果您想在Jersey上使用Spring Security的方法级安全性,则必须将Jersey配置为使用setStatus(int)
pretty sendError(int)
。这样可以防止Jersey在Spring Security有机会向客户端报告身份验证或授权失败之前提交响应。
该jersey.config.server.response.setStatusOverSendError
属性必须true
在应用程序的ResourceConfig
Bean上设置为,如以下示例所示:
@Component
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(Endpoint.class);
setProperties(Collections.singletonMap("jersey.config.server.response.setStatusOverSendError", true));
}
}
6.2. 与另一个Web框架一起使用Jersey
要将Jersey与其他Web框架(例如Spring MVC)一起使用,应对其进行配置,以便它将允许其他框架处理无法处理的请求。首先,通过将spring.jersey.type
应用程序属性配置为值,将Jersey配置为使用过滤器而不是Servlet filter
。其次,配置您的ResourceConfig
请求以转发可能导致404的请求,如以下示例所示。
@Component
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
register(Endpoint.class);
property(ServletProperties.FILTER_FORWARD_ON_404, true);
}
}