Jersey

采用Spring Security保护Jersey端点

Spring Security 可以用来保护基于Jersey的网页应用,就像它可以保护基于 Spring MVC 的网页应用一样。 然而,如果你想在 Jersey 上使用 Spring Security 的方法级安全,必须配置 Jersey 以使用setStatus(int)sendError(int). 这防止Jersey在Spring Security有机会向客户端报告认证或授权失败之前提交响应。spring-doc.cadn.net.cn

jersey.config.server.response.setStatusOverSendError属性必须设置为true在申请表上ResourceConfig豆子,如下例所示:spring-doc.cadn.net.cn

import java.util.Collections;

import org.glassfish.jersey.server.ResourceConfig;

import org.springframework.stereotype.Component;

@Component
public class JerseySetStatusOverSendErrorConfig extends ResourceConfig {

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

}

将Jersey与另一个网络框架一起使用

要将Jersey与另一个Web框架(如Spring MVC)一起使用,应配置为允许另一个框架处理它无法处理的请求。 首先,通过配置 Jersey 使它使用Filter而非 servlet,方法是春季。球衣。类型应用性质的值为Filter. 其次,配置你的ResourceConfig转发可能导致404的请求,如下例所示。spring-doc.cadn.net.cn

import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletProperties;

import org.springframework.stereotype.Component;

@Component
public class JerseyConfig extends ResourceConfig {

	public JerseyConfig() {
		register(Endpoint.class);
		property(ServletProperties.FILTER_FORWARD_ON_404, true);
	}

}