Skip to content
Snippets Groups Projects
Unverified Commit d1e8b085 authored by Mark Sagi-Kazar's avatar Mark Sagi-Kazar
Browse files

feat: use embedded assets by default

parent 78fcac75
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,7 @@ import ( ...@@ -9,6 +9,7 @@ import (
"io/fs" "io/fs"
"net/http" "net/http"
"net/url" "net/url"
"os"
"path" "path"
"strconv" "strconv"
"strings" "strings"
...@@ -41,6 +42,7 @@ import ( ...@@ -41,6 +42,7 @@ import (
"github.com/dexidp/dex/connector/saml" "github.com/dexidp/dex/connector/saml"
"github.com/dexidp/dex/pkg/log" "github.com/dexidp/dex/pkg/log"
"github.com/dexidp/dex/storage" "github.com/dexidp/dex/storage"
"github.com/dexidp/dex/web"
) )
// LocalConnector is the local passwordDB connector which is an internal // LocalConnector is the local passwordDB connector which is an internal
...@@ -101,20 +103,20 @@ type Config struct { ...@@ -101,20 +103,20 @@ type Config struct {
// WebConfig holds the server's frontend templates and asset configuration. // WebConfig holds the server's frontend templates and asset configuration.
type WebConfig struct { 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: // It is expected to contain the following directories:
// //
// * static - Static static served at "( issuer URL )/static". // * static - Static static served at "( issuer URL )/static".
// * templates - HTML templates controlled by dex. // * templates - HTML templates controlled by dex.
// * themes/(theme) - Static static served at "( issuer URL )/theme". // * themes/(theme) - Static static served at "( issuer URL )/theme".
//
Dir string Dir string
// Alternative way to configure web static filesystem. Dir overrides this. // Alternative way to programatically configure static web assets.
// It's expected to contain the same files and directories as mentioned // If Dir is specified, WebFS is ignored.
// above in Dir doc. // 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 WebFS fs.FS
// Defaults to "( issuer URL )/theme/logo.png" // Defaults to "( issuer URL )/theme/logo.png"
...@@ -210,9 +212,15 @@ func newServer(ctx context.Context, c Config, rotationStrategy rotationStrategy) ...@@ -210,9 +212,15 @@ func newServer(ctx context.Context, c Config, rotationStrategy rotationStrategy)
supported[respType] = true 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{ web := webConfig{
dir: c.Web.Dir, webFS: webFS,
webFS: c.Web.WebFS,
logoURL: c.Web.LogoURL, logoURL: c.Web.LogoURL,
issuerURL: c.Issuer, issuerURL: c.Issuer,
issuer: c.Web.Issuer, issuer: c.Web.Issuer,
......
...@@ -7,7 +7,6 @@ import ( ...@@ -7,7 +7,6 @@ import (
"io/fs" "io/fs"
"net/http" "net/http"
"net/url" "net/url"
"os"
"path" "path"
"path/filepath" "path/filepath"
"sort" "sort"
...@@ -45,7 +44,6 @@ type templates struct { ...@@ -45,7 +44,6 @@ type templates struct {
} }
type webConfig struct { type webConfig struct {
dir string
webFS fs.FS webFS fs.FS
logoURL string logoURL string
issuer string issuer string
...@@ -77,11 +75,6 @@ func loadWebConfig(c webConfig) (http.Handler, http.Handler, *templates, error) ...@@ -77,11 +75,6 @@ func loadWebConfig(c webConfig) (http.Handler, http.Handler, *templates, error)
if c.issuer == "" { if c.issuer == "" {
c.issuer = "dex" 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 == "" { if c.logoURL == "" {
c.logoURL = "theme/logo.png" c.logoURL = "theme/logo.png"
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment