Jersey
使用 Spring Security 保护 Jersey 端点
Spring Security 可用于保护基于 Jersey 的 Web 应用程序,其方式与用于保护基于 Spring MVC 的 Web 应用程序的方式大致相同。
但是,如果要将 Spring Security 的方法级安全性与 Jersey 一起使用,则必须将 Jersey 配置为使用 rather .
这可以防止 Jersey 在 Spring Security 有机会向 Client 端报告身份验证或授权失败之前提交响应。setStatus(int)
sendError(int)
必须在应用程序的 ResourceConfig
bean 上将该属性设置为,如以下示例所示:jersey.config.server.response.setStatusOverSendError
true
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)一起使用,应对其进行配置,以便允许其他框架处理它无法处理的请求。
首先,通过将 application 属性配置为值 .
其次,将您的 ResourceConfig
配置为转发会导致 404 的请求,如以下示例所示。spring.jersey.type
filter
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);
}
}