Home / Class/ CorsConfig Class — netty Architecture

CorsConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9["CorsConfig"]
  760204a6_d16c_2ba9_0071_9f83a66f4eab["CorsConfig.java"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|defined in| 760204a6_d16c_2ba9_0071_9f83a66f4eab
  1e854dc9_605e_08a2_5de6_fc1236f06624["CorsConfig()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 1e854dc9_605e_08a2_5de6_fc1236f06624
  f15a6724_73ad_d7ce_dc5c_2775f14fd309["isCorsSupportEnabled()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| f15a6724_73ad_d7ce_dc5c_2775f14fd309
  4728ba5b_0e4a_6e2c_ce3c_050f3f3d07ac["isAnyOriginSupported()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 4728ba5b_0e4a_6e2c_ce3c_050f3f3d07ac
  9644385a_05b5_c5bd_f47c_38e0875ec1d8["String()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 9644385a_05b5_c5bd_f47c_38e0875ec1d8
  5b9388aa_5c57_3a08_7101_08a0663fbc42["origins()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 5b9388aa_5c57_3a08_7101_08a0663fbc42
  0d0c65c9_2998_ae07_a7bf_58eda77937e1["isNullOriginAllowed()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 0d0c65c9_2998_ae07_a7bf_58eda77937e1
  bacd6a76_bd55_b5c2_2442_1b84b1ba6569["isPrivateNetworkAllowed()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| bacd6a76_bd55_b5c2_2442_1b84b1ba6569
  4eb2cfee_c2a7_bce4_398c_252fbf23c4e4["exposedHeaders()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 4eb2cfee_c2a7_bce4_398c_252fbf23c4e4
  5479aa92_902f_5d2d_a502_61dbaf5d7f7c["isCredentialsAllowed()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 5479aa92_902f_5d2d_a502_61dbaf5d7f7c
  b9a5bc8a_11bf_90fd_72e6_c7726650062b["maxAge()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| b9a5bc8a_11bf_90fd_72e6_c7726650062b
  264b53a9_e0c7_5882_5ddb_16af4f7ca181["allowedRequestMethods()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 264b53a9_e0c7_5882_5ddb_16af4f7ca181
  fcbbfcc2_29ac_6227_d725_0a912cdcb5fd["allowedRequestHeaders()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| fcbbfcc2_29ac_6227_d725_0a912cdcb5fd
  64a4a4ea_e935_0e22_f674_d7766b33f8e6["HttpHeaders()"]
  32cf87ea_fbdf_420e_2858_4a3ba6de34a9 -->|method| 64a4a4ea_e935_0e22_f674_d7766b33f8e6

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/cors/CorsConfig.java lines 35–455

public final class CorsConfig {

    private final Set<String> origins;
    private final boolean anyOrigin;
    private final boolean enabled;
    private final Set<String> exposeHeaders;
    private final boolean allowCredentials;
    private final long maxAge;
    private final Set<HttpMethod> allowedRequestMethods;
    private final Set<String> allowedRequestHeaders;
    private final boolean allowNullOrigin;
    private final Map<CharSequence, Callable<?>> preflightHeaders;
    private final boolean shortCircuit;
    private final boolean allowPrivateNetwork;

    CorsConfig(final CorsConfigBuilder builder) {
        origins = new LinkedHashSet<String>(builder.origins);
        anyOrigin = builder.anyOrigin;
        enabled = builder.enabled;
        exposeHeaders = builder.exposeHeaders;
        allowCredentials = builder.allowCredentials;
        maxAge = builder.maxAge;
        allowedRequestMethods = builder.requestMethods;
        allowedRequestHeaders = builder.requestHeaders;
        allowNullOrigin = builder.allowNullOrigin;
        preflightHeaders = builder.preflightHeaders;
        shortCircuit = builder.shortCircuit;
        allowPrivateNetwork = builder.allowPrivateNetwork;
    }

    /**
     * Determines if support for CORS is enabled.
     *
     * @return {@code true} if support for CORS is enabled, false otherwise.
     */
    public boolean isCorsSupportEnabled() {
        return enabled;
    }

    /**
     * Determines whether a wildcard origin, '*', is supported.
     *
     * @return {@code boolean} true if any origin is allowed.
     */
    public boolean isAnyOriginSupported() {
        return anyOrigin;
    }

    /**
     * Returns the allowed origin. This can either be a wildcard or an origin value.
     *
     * @return the value that will be used for the CORS response header 'Access-Control-Allow-Origin'
     */
    public String origin() {
        return origins.isEmpty() ? "*" : origins.iterator().next();
    }

    /**
     * Returns the set of allowed origins.
     *
     * @return {@code Set} the allowed origins.
     */
    public Set<String> origins() {
        return origins;
    }

    /**
     * Web browsers may set the 'Origin' request header to 'null' if a resource is loaded
     * from the local file system.
     *
     * If isNullOriginAllowed is true then the server will response with the wildcard for
     * the CORS response header 'Access-Control-Allow-Origin'.
     *
     * @return {@code true} if a 'null' origin should be supported.
     */
    public boolean isNullOriginAllowed() {
        return allowNullOrigin;
    }

    /**
     * Web browsers may set the 'Access-Control-Request-Private-Network' request header if a resource is loaded

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free