Documentation
¶
Overview ¶
This code implements the flow chart that can be found here. http://www.html5rocks.com/static/images/cors_server_flowchart.png
A Default Config for example is below:
cors.Config{
Origins: "*",
Methods: "GET, PUT, POST, DELETE",
RequestHeaders: "Origin, Authorization, Content-Type",
ExposedHeaders: "",
MaxAge: 1 * time.Minute,
Credentials: true,
ValidateHeaders: false,
}
Index ¶
Constants ¶
View Source
const ( AllowOriginKey string = "Access-Control-Allow-Origin" AllowCredentialsKey = "Access-Control-Allow-Credentials" AllowHeadersKey = "Access-Control-Allow-Headers" AllowMethodsKey = "Access-Control-Allow-Methods" MaxAgeKey = "Access-Control-Max-Age" OriginKey = "Origin" RequestMethodKey = "Access-Control-Request-Method" RequestHeadersKey = "Access-Control-Request-Headers" ExposeHeadersKey = "Access-Control-Expose-Headers" )
Variables ¶
This section is empty.
Functions ¶
func Middleware ¶
func Middleware(config Config) gin.HandlerFunc
Middleware generates a middleware handler function that works inside of a Gin request to set the correct CORS headers. It accepts a cors.Options struct for configuration.
Types ¶
type Config ¶
type Config struct {
// Enabling this causes us to compare Request-Method and Request-Headers to confirm they contain a subset of the Allowed Methods and Allowed Headers
// The spec however allows for the server to always match, and simply return the allowed methods and headers. Either is supported in this middleware.
ValidateHeaders bool
// Comma delimited list of origin domains. Wildcard "*" is also allowed, and matches all origins.
// If the origin does not match an item in the list, then the request is denied.
Origins string
// This are the headers that the resource supports, and will accept in the request.
// Default is "Authorization".
RequestHeaders string
// These are headers that should be accessable by the CORS client, they are in addition to those defined by the spec as "simple response headers"
// Cache-Control
// Content-Language
// Content-Type
// Expires
// Last-Modified
// Pragma
ExposedHeaders string
// Comma delimited list of acceptable HTTP methods.
Methods string
// The amount of time in seconds that the client should cache the Preflight request
MaxAge time.Duration
// If true, then cookies and Authorization headers are allowed along with the request. This
// is passed to the browser, but is not enforced.
Credentials bool
// contains filtered or unexported fields
}
Config defines the configuration options available to control how the CORS middleware should function.
Click to show internal directories.
Click to hide internal directories.