mirror of
https://github.com/astaxie/beego.git
synced 2025-06-14 20:10:39 +00:00
Revert "Merge pull request #4325 from flycash/revert1"
This reverts commitfad897346f
, reversing changes made toe284b0ddae
.
This commit is contained in:
71
adapter/plugins/cors/cors.go
Normal file
71
adapter/plugins/cors/cors.go
Normal file
@ -0,0 +1,71 @@
|
||||
// Copyright 2014 beego Author. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Package cors provides handlers to enable CORS support.
|
||||
// Usage
|
||||
// import (
|
||||
// "github.com/astaxie/beego"
|
||||
// "github.com/astaxie/beego/plugins/cors"
|
||||
// )
|
||||
//
|
||||
// func main() {
|
||||
// // CORS for https://foo.* origins, allowing:
|
||||
// // - PUT and PATCH methods
|
||||
// // - Origin header
|
||||
// // - Credentials share
|
||||
// beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
|
||||
// AllowOrigins: []string{"https://*.foo.com"},
|
||||
// AllowMethods: []string{"PUT", "PATCH"},
|
||||
// AllowHeaders: []string{"Origin"},
|
||||
// ExposeHeaders: []string{"Content-Length"},
|
||||
// AllowCredentials: true,
|
||||
// }))
|
||||
// beego.Run()
|
||||
// }
|
||||
package cors
|
||||
|
||||
import (
|
||||
beego "github.com/astaxie/beego/adapter"
|
||||
beecontext "github.com/astaxie/beego/server/web/context"
|
||||
"github.com/astaxie/beego/server/web/filter/cors"
|
||||
|
||||
"github.com/astaxie/beego/adapter/context"
|
||||
)
|
||||
|
||||
// Options represents Access Control options.
|
||||
type Options cors.Options
|
||||
|
||||
// Header converts options into CORS headers.
|
||||
func (o *Options) Header(origin string) (headers map[string]string) {
|
||||
return (*cors.Options)(o).Header(origin)
|
||||
}
|
||||
|
||||
// PreflightHeader converts options into CORS headers for a preflight response.
|
||||
func (o *Options) PreflightHeader(origin, rMethod, rHeaders string) (headers map[string]string) {
|
||||
return (*cors.Options)(o).PreflightHeader(origin, rMethod, rHeaders)
|
||||
}
|
||||
|
||||
// IsOriginAllowed looks up if the origin matches one of the patterns
|
||||
// generated from Options.AllowOrigins patterns.
|
||||
func (o *Options) IsOriginAllowed(origin string) bool {
|
||||
return (*cors.Options)(o).IsOriginAllowed(origin)
|
||||
}
|
||||
|
||||
// Allow enables CORS for requests those match the provided options.
|
||||
func Allow(opts *Options) beego.FilterFunc {
|
||||
f := cors.Allow((*cors.Options)(opts))
|
||||
return func(c *context.Context) {
|
||||
f((*beecontext.Context)(c))
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user