此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.1Spring中文文档

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.1Spring中文文档

使用 Spring Security 保护 Jersey 端点

Spring Security 可用于保护基于 Jersey 的 Web 应用程序,其方式与用于保护基于 Spring MVC 的 Web 应用程序的方式大致相同。 但是,如果要将 Spring Security 的方法级安全性与 Jersey 一起使用,则必须将 Jersey 配置为使用 . 这可以防止 Jersey 在 Spring Security 有机会向客户端报告身份验证或授权失败之前提交响应。setStatus(int)sendError(int)Spring中文文档

该属性必须设置为 on the application's bean,如以下示例所示:jersey.config.server.response.setStatusOverSendErrortrueResourceConfigSpring中文文档

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 与另一个 Web 框架一起使用

要将 Jersey 与另一个 Web 框架(如 Spring MVC)一起使用,应对其进行配置,以便允许其他框架处理它无法处理的请求。 首先,通过将应用程序属性配置为值 ,将 Jersey 配置为使用过滤器而不是 servlet。 其次,将 Your 配置为转发将导致 404 的请求,如以下示例所示。spring.jersey.typefilterResourceConfigSpring中文文档

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);
	}

}