Skip to content

Commit

Permalink
use csp headers for swagger resources
Browse files Browse the repository at this point in the history
  • Loading branch information
LukasForst committed Sep 19, 2022
1 parent 45e051e commit 9649314
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
13 changes: 10 additions & 3 deletions backend/src/main/java/com/wire/bots/roman/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,17 @@

import com.wire.bots.roman.commands.UpdateCertCommand;
import com.wire.bots.roman.filters.BackendAuthenticationFilter;
import com.wire.bots.roman.filters.CspResponseFilter;
import com.wire.bots.roman.filters.ProxyAuthenticationFilter;
import com.wire.bots.roman.filters.ServiceAuthenticationFilter;
import com.wire.bots.roman.filters.ServiceTokenAuthenticationFilter;
import com.wire.bots.roman.model.Config;
import com.wire.bots.roman.resources.*;
import com.wire.bots.roman.resources.BroadcastResource;
import com.wire.bots.roman.resources.ConversationResource;
import com.wire.bots.roman.resources.MessagesResource;
import com.wire.bots.roman.resources.ProviderResource;
import com.wire.bots.roman.resources.ServiceResource;
import com.wire.bots.roman.resources.UsersResource;
import com.wire.lithium.ClientRepo;
import com.wire.lithium.Server;
import com.wire.xenon.MessageHandlerBase;
Expand All @@ -32,12 +38,12 @@
import io.dropwizard.bundles.assets.ConfiguredAssetsBundle;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
import io.dropwizard.util.Strings;
import io.dropwizard.websockets.WebsocketBundle;
import io.jsonwebtoken.security.Keys;
import org.eclipse.jetty.servlets.CrossOriginFilter;

import javax.servlet.*;
import javax.servlet.DispatcherType;
import javax.servlet.FilterRegistration;
import java.security.Key;
import java.util.EnumSet;
import java.util.concurrent.ExecutorService;
Expand Down Expand Up @@ -81,6 +87,7 @@ protected void registerFeatures() {
environment.jersey().register(ServiceAuthenticationFilter.ServiceAuthenticationFeature.class);
environment.jersey().register(ServiceTokenAuthenticationFilter.ServiceTokenAuthenticationFeature.class);
environment.jersey().register(BackendAuthenticationFilter.BackendAuthenticationFeature.class);
environment.jersey().register(CspResponseFilter.class);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.wire.bots.roman.filters;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;

public class CspResponseFilter implements ContainerResponseFilter {

@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) {
// this is going to be
// swagger.json, swagger-static, swagger-ui and all other assets
if (requestContext.getUriInfo().getPath().contains("swagger")) {
responseContext.getHeaders().add("Content-Security-Policy",
"default-src 'self'; connect-src 'self'; media-src data:; img-src 'self' data:; " +
"style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline';");
}
}

}

0 comments on commit 9649314

Please sign in to comment.