Merge PR #5671: CORS - Add a Flag for CORS
This commit is contained in:
@@ -68,6 +68,7 @@ const (
|
||||
FlagKeyringBackend = "keyring-backend"
|
||||
FlagPage = "page"
|
||||
FlagLimit = "limit"
|
||||
FlagUnsafeCORS = "unsafe-cors"
|
||||
)
|
||||
|
||||
// LineBreak can be included in a command list to provide a blank line
|
||||
@@ -141,6 +142,7 @@ func RegisterRestServerFlags(cmd *cobra.Command) *cobra.Command {
|
||||
cmd.Flags().Uint(FlagMaxOpenConnections, 1000, "The number of maximum open connections")
|
||||
cmd.Flags().Uint(FlagRPCReadTimeout, 10, "The RPC read timeout (in seconds)")
|
||||
cmd.Flags().Uint(FlagRPCWriteTimeout, 10, "The RPC write timeout (in seconds)")
|
||||
cmd.Flags().Bool(FlagUnsafeCORS, false, "Allows CORS requests from all domains. For development purposes only, use it at your own risk.")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
+8
-1
@@ -7,6 +7,7 @@ import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/handlers"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rakyll/statik/fs"
|
||||
"github.com/spf13/cobra"
|
||||
@@ -46,7 +47,7 @@ func NewRestServer(cdc *codec.Codec) *RestServer {
|
||||
}
|
||||
|
||||
// Start starts the rest server
|
||||
func (rs *RestServer) Start(listenAddr string, maxOpen int, readTimeout, writeTimeout uint) (err error) {
|
||||
func (rs *RestServer) Start(listenAddr string, maxOpen int, readTimeout, writeTimeout uint, cors bool) (err error) {
|
||||
server.TrapSignal(func() {
|
||||
err := rs.listener.Close()
|
||||
rs.log.Error("error closing listener", "err", err)
|
||||
@@ -68,6 +69,11 @@ func (rs *RestServer) Start(listenAddr string, maxOpen int, readTimeout, writeTi
|
||||
),
|
||||
)
|
||||
|
||||
var h http.Handler = rs.Mux
|
||||
if cors {
|
||||
return rpcserver.StartHTTPServer(rs.listener, handlers.CORS()(h), rs.log, cfg)
|
||||
}
|
||||
|
||||
return rpcserver.StartHTTPServer(rs.listener, rs.Mux, rs.log, cfg)
|
||||
}
|
||||
|
||||
@@ -90,6 +96,7 @@ func ServeCommand(cdc *codec.Codec, registerRoutesFn func(*RestServer)) *cobra.C
|
||||
viper.GetInt(flags.FlagMaxOpenConnections),
|
||||
uint(viper.GetInt(flags.FlagRPCReadTimeout)),
|
||||
uint(viper.GetInt(flags.FlagRPCWriteTimeout)),
|
||||
viper.GetBool(flags.FlagUnsafeCORS),
|
||||
)
|
||||
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user