forked from mystiq/dex
feat: use embedded assets by default
Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This commit is contained in:
parent
78fcac7568
commit
d1e8b085e2
2 changed files with 15 additions and 14 deletions
|
@ -9,6 +9,7 @@ import (
|
|||
"io/fs"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"path"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
@ -41,6 +42,7 @@ import (
|
|||
"github.com/dexidp/dex/connector/saml"
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
"github.com/dexidp/dex/web"
|
||||
)
|
||||
|
||||
// LocalConnector is the local passwordDB connector which is an internal
|
||||
|
@ -101,20 +103,20 @@ type Config struct {
|
|||
|
||||
// WebConfig holds the server's frontend templates and asset configuration.
|
||||
type WebConfig struct {
|
||||
// A file path to web static. If set, WebFS will be ignored.
|
||||
// A file path to static web assets.
|
||||
//
|
||||
// It is expected to contain the following directories:
|
||||
//
|
||||
// * static - Static static served at "( issuer URL )/static".
|
||||
// * templates - HTML templates controlled by dex.
|
||||
// * themes/(theme) - Static static served at "( issuer URL )/theme".
|
||||
//
|
||||
Dir string
|
||||
|
||||
// Alternative way to configure web static filesystem. Dir overrides this.
|
||||
// It's expected to contain the same files and directories as mentioned
|
||||
// above in Dir doc.
|
||||
// Alternative way to programatically configure static web assets.
|
||||
// If Dir is specified, WebFS is ignored.
|
||||
// It's expected to contain the same files and directories as mentioned above.
|
||||
//
|
||||
// Note: this is experimental. Might get removed without notice!
|
||||
WebFS fs.FS
|
||||
|
||||
// Defaults to "( issuer URL )/theme/logo.png"
|
||||
|
@ -210,9 +212,15 @@ func newServer(ctx context.Context, c Config, rotationStrategy rotationStrategy)
|
|||
supported[respType] = true
|
||||
}
|
||||
|
||||
webFS := web.FS()
|
||||
if c.Web.Dir != "" {
|
||||
webFS = os.DirFS(c.Web.Dir)
|
||||
} else if c.Web.WebFS != nil {
|
||||
webFS = c.Web.WebFS
|
||||
}
|
||||
|
||||
web := webConfig{
|
||||
dir: c.Web.Dir,
|
||||
webFS: c.Web.WebFS,
|
||||
webFS: webFS,
|
||||
logoURL: c.Web.LogoURL,
|
||||
issuerURL: c.Issuer,
|
||||
issuer: c.Web.Issuer,
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
"io/fs"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
|
@ -45,7 +44,6 @@ type templates struct {
|
|||
}
|
||||
|
||||
type webConfig struct {
|
||||
dir string
|
||||
webFS fs.FS
|
||||
logoURL string
|
||||
issuer string
|
||||
|
@ -77,11 +75,6 @@ func loadWebConfig(c webConfig) (http.Handler, http.Handler, *templates, error)
|
|||
if c.issuer == "" {
|
||||
c.issuer = "dex"
|
||||
}
|
||||
if c.dir != "" {
|
||||
c.webFS = os.DirFS(c.dir)
|
||||
} else if c.webFS == nil {
|
||||
c.webFS = os.DirFS("./web")
|
||||
}
|
||||
if c.logoURL == "" {
|
||||
c.logoURL = "theme/logo.png"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue