/** * A {@link ContainerRequestFilter} that replaces the {@link javax.ws.rs.core.SecurityContext} * with a {@link ShiroSecurityContext}. * @since 1.4 */ @Provider @PreMatching public class SubjectPrincipalRequestFilter implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext requestContext) throws IOException { requestContext.setSecurityContext(new ShiroSecurityContext(requestContext)); } }
@PreMatching @Provider @Priority(1) public class HeaderAdder implements ContainerRequestFilter { public static final Logger LOGGER = LoggerFactory.getLogger(HeaderAdder.class);
@PreMatching @Priority(Priorities.HEADER_DECORATOR) public class TypeGPXFilter implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext rc) { String maybeType = rc.getUriInfo().getQueryParameters().getFirst("type"); if (maybeType != null && maybeType.equals("gpx")) { rc.getHeaders().putSingle(HttpHeaders.ACCEPT, "application/gpx+xml"); } } }
/** * This filter provides backward compatibility for Resource URI changes. */ @PreMatching public class RedirectResourceFilter implements ContainerRequestFilter { /** * This method checks path of the incoming request, and * redirects following URIs: * <li>/controller -> SiteToSiteResource * @param requestContext request to be modified */ @Override public void filter(ContainerRequestContext requestContext) throws IOException { final UriInfo uriInfo = requestContext.getUriInfo(); if (uriInfo.getPath().equals("controller")){ UriBuilder builder = UriBuilder.fromUri(uriInfo.getBaseUri()) .path(SiteToSiteResource.class) .replaceQuery(uriInfo.getRequestUri().getRawQuery()); URI redirectTo = builder.build(); requestContext.setRequestUri(uriInfo.getBaseUri(), redirectTo); } } }
@Priority(-1000) @PreMatching @Provider public class ContextFilter implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext requestContext) throws IOException { Context context = ResteasyContext.getContextData(Context.class); Cleanables cleanables = ResteasyContext.getContextData(Cleanables.class); Context.setThreadInstance(context); cleanables.addCleanable(() -> Context.clearThreadInstance()); } }
@PreMatching @Priority(Priorities.HEADER_DECORATOR + 50) // must go after UriConnegFilter (if present) public final class HttpMethodOverrideFilter implements ContainerRequestFilter {
@PreMatching public abstract class AbstractTracingFilter implements ContainerRequestFilter, ContainerResponseFilter {
@Provider @PreMatching public class RuntimeFilter implements ContainerRequestFilter, ContainerResponseFilter {
@Provider @PreMatching @Priority(Priorities.AUTHENTICATION) public class AuthenticationFilter implements ContainerRequestFilter {
@PreMatching @Priority(Priorities.HEADER_DECORATOR + 50) // must go after UriConnegFilter (if present) public final class HttpMethodOverrideFilter implements ContainerRequestFilter {
@PreMatching public class AcceptParameterHttpPreprocessor implements ContainerRequestFilter
@Provider @PreMatching public class ReqContextFilter implements Filter { private final IHttpCredentialsPlugin httpCredsHandler;
@Priority(-1000) @PreMatching @Provider public class ContextFilter implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext requestContext) throws IOException { Context context = ResteasyContext.getContextData(Context.class); Cleanables cleanables = ResteasyContext.getContextData(Cleanables.class); Context.setThreadInstance(context); cleanables.addCleanable(() -> Context.clearThreadInstance()); } }
@PreMatching @Priority(Priorities.HEADER_DECORATOR) public final class UriConnegFilter implements ContainerRequestFilter {
@PreMatching public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilter
@Provider @PreMatching public class SecurityRequestFilter implements ContainerRequestFilter {
/** * Intercepts incoming container requests and extracts any trace information from the request header * Also sends sr annotations. */ @Provider @PreMatching @Priority(0) public class BraveContainerRequestFilter implements ContainerRequestFilter { private final ServerRequestInterceptor requestInterceptor; private final SpanNameProvider spanNameProvider; @Inject public BraveContainerRequestFilter(ServerRequestInterceptor interceptor, SpanNameProvider spanNameProvider) { this.requestInterceptor = interceptor; this.spanNameProvider = spanNameProvider; } @Override public void filter(ContainerRequestContext containerRequestContext) throws IOException { HttpServerRequest request = new JaxRs2HttpServerRequest(containerRequestContext); requestInterceptor.handle(new HttpServerRequestAdapter(request, spanNameProvider)); } }
@PreMatching @Priority(Priorities.HEADER_DECORATOR) public final class UriConnegFilter implements ContainerRequestFilter {
@PreMatching public class XmlSigInHandler extends AbstractXmlSigInHandler implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext context) { Message message = JAXRSUtils.getCurrentMessage(); checkSignature(message); } }
@Provider @PreMatching public final class RequestContextFilter implements ContainerRequestFilter, ContainerResponseFilter {