git.iko.soy/typeable/oauth2-proxy
on master help sign in
Rename Session Options to improve structure
commite49f8542bc96d3e665aceaa69f2d5dbfbcf859de authorJoel Speed <joel.speed@hotmail.co.uk> dateSun 12 Apr 2020, 14:55 (7 years ago) parent4587101
5 files changed+17−22
oauthproxy_test.go+2−2 options.go+4−5 pkg/apis/options/sessions.go+4−8 pkg/sessions/redis/redis_store.go+6−6 pkg/sessions/session_store_test.go+1−1
oauthproxy_test.go+2−2
@@ -1403,7 +1403,7 @@ func TestClearSplitCookie(t *testing.T) {
14031403 opts := NewOptions()
14041404 opts.Cookie.Name = "oauth2"
14051405 opts.Cookie.Domains = []string{"abc"}
1406− store, err := cookie.NewCookieSessionStore(&opts.SessionOptions, &opts.Cookie)
1406+ store, err := cookie.NewCookieSessionStore(&opts.Session, &opts.Cookie)
14071407 assert.Equal(t, err, nil)
14081408 p := OAuthProxy{CookieName: opts.Cookie.Name, CookieDomains: opts.Cookie.Domains, sessionStore: store}
14091409 var rw = httptest.NewRecorder()
@@ -1432,7 +1432,7 @@ func TestClearSingleCookie(t *testing.T) {
14321432 opts := NewOptions()
14331433 opts.Cookie.Name = "oauth2"
14341434 opts.Cookie.Domains = []string{"abc"}
1435− store, err := cookie.NewCookieSessionStore(&opts.SessionOptions, &opts.Cookie)
1435+ store, err := cookie.NewCookieSessionStore(&opts.Session, &opts.Cookie)
14361436 assert.Equal(t, err, nil)
14371437 p := OAuthProxy{CookieName: opts.Cookie.Name, CookieDomains: opts.Cookie.Domains, sessionStore: store}
14381438 var rw = httptest.NewRecorder()
options.go+4−5
@@ -66,8 +66,7 @@ type Options struct {
6666
6767 Cookie options.CookieOptions
6868
69− // Embed SessionOptions
70− options.SessionOptions
69+ Session options.SessionOptions
7170
7271 Upstreams []string `flag:"upstream" cfg:"upstreams" env:"OAUTH2_PROXY_UPSTREAMS"`
7372 SkipAuthRegex []string `flag:"skip-auth-regex" cfg:"skip_auth_regex" env:"OAUTH2_PROXY_SKIP_AUTH_REGEX"`
@@ -164,7 +163,7 @@ func NewOptions() *Options {
164163 Expire: time.Duration(168) * time.Hour,
165164 Refresh: time.Duration(0),
166165 },
167− SessionOptions: options.SessionOptions{
166+ Session: options.SessionOptions{
168167 Type: "cookie",
169168 },
170169 SetXAuthRequest: false,
@@ -412,8 +411,8 @@ func (o *Options) Validate() error {
412411 }
413412 }
414413
415− o.SessionOptions.Cipher = cipher
416− sessionStore, err := sessions.NewSessionStore(&o.SessionOptions, &o.Cookie)
414+ o.Session.Cipher = cipher
415+ sessionStore, err := sessions.NewSessionStore(&o.Session, &o.Cookie)
417416 if err != nil {
418417 msgs = append(msgs, fmt.Sprintf("error initialising session storage: %v", err))
419418 } else {
pkg/apis/options/sessions.go+4−8
@@ -6,29 +6,25 @@ import "github.com/oauth2-proxy/oauth2-proxy/pkg/encryption"
66type SessionOptions struct {
77 Type string `flag:"session-store-type" cfg:"session_store_type" env:"OAUTH2_PROXY_SESSION_STORE_TYPE"`
88 Cipher *encryption.Cipher
9− CookieStoreOptions
10− RedisStoreOptions
9+ Redis RedisStoreOptions
1110}
1211
1312// CookieSessionStoreType is used to indicate the CookieSessionStore should be
1413// used for storing sessions.
1514var CookieSessionStoreType = "cookie"
1615
17−// CookieStoreOptions contains configuration options for the CookieSessionStore.
18−type CookieStoreOptions struct{}
19−
2016// RedisSessionStoreType is used to indicate the RedisSessionStore should be
2117// used for storing sessions.
2218var RedisSessionStoreType = "redis"
2319
2420// RedisStoreOptions contains configuration options for the RedisSessionStore.
2521type RedisStoreOptions struct {
26− RedisConnectionURL string `flag:"redis-connection-url" cfg:"redis_connection_url" env:"OAUTH2_PROXY_REDIS_CONNECTION_URL"`
22+ ConnectionURL string `flag:"redis-connection-url" cfg:"redis_connection_url" env:"OAUTH2_PROXY_REDIS_CONNECTION_URL"`
2723 UseSentinel bool `flag:"redis-use-sentinel" cfg:"redis_use_sentinel" env:"OAUTH2_PROXY_REDIS_USE_SENTINEL"`
2824 SentinelMasterName string `flag:"redis-sentinel-master-name" cfg:"redis_sentinel_master_name" env:"OAUTH2_PROXY_REDIS_SENTINEL_MASTER_NAME"`
2925 SentinelConnectionURLs []string `flag:"redis-sentinel-connection-urls" cfg:"redis_sentinel_connection_urls" env:"OAUTH2_PROXY_REDIS_SENTINEL_CONNECTION_URLS"`
3026 UseCluster bool `flag:"redis-use-cluster" cfg:"redis_use_cluster" env:"OAUTH2_PROXY_REDIS_USE_CLUSTER"`
3127 ClusterConnectionURLs []string `flag:"redis-cluster-connection-urls" cfg:"redis_cluster_connection_urls" env:"OAUTH2_PROXY_REDIS_CLUSTER_CONNECTION_URLS"`
32− RedisCAPath string `flag:"redis-ca-path" cfg:"redis_ca_path" env:"OAUTH2_PROXY_REDIS_CA_PATH"`
33− RedisInsecureTLS bool `flag:"redis-insecure-skip-tls-verify" cfg:"redis_insecure_skip_tls_verify" env:"OAUTH2_PROXY_REDIS_INSECURE_SKIP_TLS_VERIFY"`
28+ CAPath string `flag:"redis-ca-path" cfg:"redis_ca_path" env:"OAUTH2_PROXY_REDIS_CA_PATH"`
29+ InsecureSkipTLSVerify bool `flag:"redis-insecure-skip-tls-verify" cfg:"redis_insecure_skip_tls_verify" env:"OAUTH2_PROXY_REDIS_INSECURE_SKIP_TLS_VERIFY"`
3430}
pkg/sessions/redis/redis_store.go+6−6
@@ -40,7 +40,7 @@ type SessionStore struct {
4040// NewRedisSessionStore initialises a new instance of the SessionStore from
4141// the configuration given
4242func NewRedisSessionStore(opts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessions.SessionStore, error) {
43− client, err := newRedisCmdable(opts.RedisStoreOptions)
43+ client, err := newRedisCmdable(opts.Redis)
4444 if err != nil {
4545 return nil, fmt.Errorf("error constructing redis client: %v", err)
4646 }
@@ -74,16 +74,16 @@ func newRedisCmdable(opts options.RedisStoreOptions) (Client, error) {
7474 return newClusterClient(client), nil
7575 }
7676
77− opt, err := redis.ParseURL(opts.RedisConnectionURL)
77+ opt, err := redis.ParseURL(opts.ConnectionURL)
7878 if err != nil {
7979 return nil, fmt.Errorf("unable to parse redis url: %s", err)
8080 }
8181
82− if opts.RedisInsecureTLS {
82+ if opts.InsecureSkipTLSVerify {
8383 opt.TLSConfig.InsecureSkipVerify = true
8484 }
8585
86− if opts.RedisCAPath != "" {
86+ if opts.CAPath != "" {
8787 rootCAs, err := x509.SystemCertPool()
8888 if err != nil {
8989 logger.Printf("failed to load system cert pool for redis connection, falling back to empty cert pool")
@@ -91,9 +91,9 @@ func newRedisCmdable(opts options.RedisStoreOptions) (Client, error) {
9191 if rootCAs == nil {
9292 rootCAs = x509.NewCertPool()
9393 }
94− certs, err := ioutil.ReadFile(opts.RedisCAPath)
94+ certs, err := ioutil.ReadFile(opts.CAPath)
9595 if err != nil {
96− return nil, fmt.Errorf("failed to load %q, %v", opts.RedisCAPath, err)
96+ return nil, fmt.Errorf("failed to load %q, %v", opts.CAPath, err)
9797 }
9898
9999 // Append our cert to the system pool
pkg/sessions/session_store_test.go+1−1
@@ -428,7 +428,7 @@ var _ = Describe("NewSessionStore", func() {
428428 mr, err = miniredis.Run()
429429 Expect(err).ToNot(HaveOccurred())
430430 opts.Type = options.RedisSessionStoreType
431− opts.RedisConnectionURL = "redis://" + mr.Addr()
431+ opts.Redis.ConnectionURL = "redis://" + mr.Addr()
432432 })
433433
434434 AfterEach(func() {