Home / Class/ CorsConfigBuilder Class — netty Architecture

CorsConfigBuilder Class — netty Architecture

Architecture documentation for the CorsConfigBuilder class in CorsConfigBuilder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  b18a7553_8e93_1213_6e76_c793a03529c2["CorsConfigBuilder"]
  69092f29_9439_7192_86f5_0213365ca797["CorsConfigBuilder.java"]
  b18a7553_8e93_1213_6e76_c793a03529c2 -->|defined in| 69092f29_9439_7192_86f5_0213365ca797
  0ebf3029_8309_5e65_d30b_fc5def115461["CorsConfigBuilder()"]
  b18a7553_8e93_1213_6e76_c793a03529c2 -->|method| 0ebf3029_8309_5e65_d30b_fc5def115461
  d9452a70_7818_c51e_7cc0_e9a918d7c468["CorsConfig()"]
  b18a7553_8e93_1213_6e76_c793a03529c2 -->|method| d9452a70_7818_c51e_7cc0_e9a918d7c468

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/cors/CorsConfigBuilder.java lines 36–420

public final class CorsConfigBuilder {

    /**
     * Creates a Builder instance with it's origin set to '*'.
     *
     * @return Builder to support method chaining.
     */
    public static CorsConfigBuilder forAnyOrigin() {
        return new CorsConfigBuilder();
    }

    /**
     * Creates a {@link CorsConfigBuilder} instance with the specified origin.
     *
     * @return {@link CorsConfigBuilder} to support method chaining.
     */
    public static CorsConfigBuilder forOrigin(final String origin) {
        if ("*".equals(origin)) {
            return new CorsConfigBuilder();
        }
        return new CorsConfigBuilder(origin);
    }

    /**
     * Creates a {@link CorsConfigBuilder} instance with the specified origins.
     *
     * @return {@link CorsConfigBuilder} to support method chaining.
     */
    public static CorsConfigBuilder forOrigins(final String... origins) {
        return new CorsConfigBuilder(origins);
    }

    final Set<String> origins;
    final boolean anyOrigin;
    boolean allowNullOrigin;
    boolean enabled = true;
    boolean allowCredentials;
    final Set<String> exposeHeaders = new HashSet<String>();
    long maxAge;
    final Set<HttpMethod> requestMethods = new HashSet<HttpMethod>();
    final Set<String> requestHeaders = new HashSet<String>();
    final Map<CharSequence, Callable<?>> preflightHeaders = new HashMap<CharSequence, Callable<?>>();
    private boolean noPreflightHeaders;
    boolean shortCircuit;
    boolean allowPrivateNetwork;

    /**
     * Creates a new Builder instance with the origin passed in.
     *
     * @param origins the origin to be used for this builder.
     */
    CorsConfigBuilder(final String... origins) {
        this.origins = new LinkedHashSet<String>(Arrays.asList(origins));
        anyOrigin = false;
    }

    /**
     * Creates a new Builder instance allowing any origin, "*" which is the
     * wildcard origin.
     *
     */
    CorsConfigBuilder() {
        anyOrigin = true;
        origins = Collections.emptySet();
    }

    /**
     * Web browsers may set the 'Origin' request header to 'null' if a resource is loaded
     * from the local file system. Calling this method will enable a successful CORS response
     * with a {@code "null"} value for the CORS response header 'Access-Control-Allow-Origin'.
     *
     * @return {@link CorsConfigBuilder} to support method chaining.
     */
    public CorsConfigBuilder allowNullOrigin() {
        allowNullOrigin = true;
        return this;
    }

    /**
     * Disables CORS support.
     *

Frequently Asked Questions

What is the CorsConfigBuilder class?
CorsConfigBuilder is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/cors/CorsConfigBuilder.java.
Where is CorsConfigBuilder defined?
CorsConfigBuilder is defined in codec-http/src/main/java/io/netty/handler/codec/http/cors/CorsConfigBuilder.java at line 36.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free