mirror of https://github.com/pikami/cosmium.git
Fix cosmos explorer incorrect redirect
This commit is contained in:
parent
2834f3f641
commit
c7d01b4593
|
@ -8,8 +8,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DefaultAccountKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
|
DefaultAccountKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
|
||||||
EnvPrefix = "COSMIUM_"
|
EnvPrefix = "COSMIUM_"
|
||||||
|
ExplorerBaseUrlLocation = "/_explorer"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Config = ServerConfig{}
|
var Config = ServerConfig{}
|
||||||
|
@ -45,6 +46,7 @@ func ParseFlags() {
|
||||||
Config.DatabaseDomain = Config.Host
|
Config.DatabaseDomain = Config.Host
|
||||||
Config.DatabaseEndpoint = fmt.Sprintf("https://%s:%d/", Config.Host, Config.Port)
|
Config.DatabaseEndpoint = fmt.Sprintf("https://%s:%d/", Config.Host, Config.Port)
|
||||||
Config.AccountKey = *accountKey
|
Config.AccountKey = *accountKey
|
||||||
|
Config.ExplorerBaseUrlLocation = ExplorerBaseUrlLocation
|
||||||
}
|
}
|
||||||
|
|
||||||
func setFlagsFromEnvironment() (err error) {
|
func setFlagsFromEnvironment() (err error) {
|
||||||
|
|
|
@ -6,14 +6,15 @@ type ServerConfig struct {
|
||||||
DatabaseEndpoint string
|
DatabaseEndpoint string
|
||||||
AccountKey string
|
AccountKey string
|
||||||
|
|
||||||
ExplorerPath string
|
ExplorerPath string
|
||||||
Port int
|
Port int
|
||||||
Host string
|
Host string
|
||||||
TLS_CertificatePath string
|
TLS_CertificatePath string
|
||||||
TLS_CertificateKey string
|
TLS_CertificateKey string
|
||||||
InitialDataFilePath string
|
InitialDataFilePath string
|
||||||
PersistDataFilePath string
|
PersistDataFilePath string
|
||||||
DisableAuth bool
|
DisableAuth bool
|
||||||
DisableTls bool
|
DisableTls bool
|
||||||
Debug bool
|
Debug bool
|
||||||
|
ExplorerBaseUrlLocation string
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func RegisterExplorerHandlers(router *gin.Engine) {
|
func RegisterExplorerHandlers(router *gin.Engine) {
|
||||||
explorer := router.Group("/_explorer")
|
explorer := router.Group(config.Config.ExplorerBaseUrlLocation)
|
||||||
{
|
{
|
||||||
explorer.Use(func(ctx *gin.Context) {
|
explorer.Use(func(ctx *gin.Context) {
|
||||||
if ctx.Param("filepath") == "/config.json" {
|
if ctx.Param("filepath") == "/config.json" {
|
||||||
|
|
|
@ -14,7 +14,7 @@ func Authentication() gin.HandlerFunc {
|
||||||
return func(c *gin.Context) {
|
return func(c *gin.Context) {
|
||||||
requestUrl := c.Request.URL.String()
|
requestUrl := c.Request.URL.String()
|
||||||
if config.Config.DisableAuth ||
|
if config.Config.DisableAuth ||
|
||||||
strings.HasPrefix(requestUrl, "/_explorer") ||
|
strings.HasPrefix(requestUrl, config.Config.ExplorerBaseUrlLocation) ||
|
||||||
strings.HasPrefix(requestUrl, "/cosmium") {
|
strings.HasPrefix(requestUrl, "/cosmium") {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
"github.com/pikami/cosmium/api/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
func StripTrailingSlashes(r *gin.Engine) gin.HandlerFunc {
|
func StripTrailingSlashes(r *gin.Engine) gin.HandlerFunc {
|
||||||
return func(c *gin.Context) {
|
return func(c *gin.Context) {
|
||||||
path := c.Request.URL.Path
|
path := c.Request.URL.Path
|
||||||
if len(path) > 1 && path[len(path)-1] == '/' {
|
if len(path) > 1 && path[len(path)-1] == '/' && !strings.Contains(path, config.Config.ExplorerBaseUrlLocation) {
|
||||||
c.Request.URL.Path = path[:len(path)-1]
|
c.Request.URL.Path = path[:len(path)-1]
|
||||||
r.HandleContext(c)
|
r.HandleContext(c)
|
||||||
c.Abort()
|
c.Abort()
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
func runTestServer() *httptest.Server {
|
func runTestServer() *httptest.Server {
|
||||||
config.Config.AccountKey = config.DefaultAccountKey
|
config.Config.AccountKey = config.DefaultAccountKey
|
||||||
config.Config.ExplorerPath = "/tmp/nothing"
|
config.Config.ExplorerPath = "/tmp/nothing"
|
||||||
|
config.Config.ExplorerBaseUrlLocation = config.ExplorerBaseUrlLocation
|
||||||
|
|
||||||
return httptest.NewServer(api.CreateRouter())
|
return httptest.NewServer(api.CreateRouter())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue