81. Jersey

81.1 使用 Spring Security 的安全 Jersey 端点

可以使用 Spring Security 来保护基于 Jersey 的 Web 应用程序,其方式与用来保护基于 Spring MVC 的 Web 应用程序的方式几乎相同。但是,如果您想通过 Jersey 使用 Spring Security 的方法级安全性,则必须将 Jersey 配置为使用setStatus(int)而不是sendError(int)。这可以防止 Jersey 在 Spring Security 有机会向 Client 端报告身份验证或授权失败之前提交响应。

必须在应用程序的ResourceConfig bean 上将jersey.config.server.response.setStatusOverSendError属性设置为true,如以下示例所示:

@Component
public class JerseyConfig extends ResourceConfig {

	public JerseyConfig() {
		register(Endpoint.class);
		setProperties(Collections.singletonMap(
				"jersey.config.server.response.setStatusOverSendError", true));
	}

}