git.iko.soy/typeable/oauth2-proxy
on master help sign in
Rename CookieOptions to Cookie
commit211fd3a010f86d3a4bfc64788bdd29a2cb7c7c3d authorJoel Speed <joel.speed@hotmail.co.uk> dateMon 25 May 2020, 12:43 (6 years ago) parent285c65a
13 files changed+72−72
pkg/apis/options/cookie.go+5−5 pkg/apis/options/options.go+2−2 pkg/cookies/cookies.go+1−1 pkg/sessions/cookie/session_store.go+12−12 pkg/sessions/cookie/session_store_test.go+1−1 pkg/sessions/redis/redis_store.go+25−25 pkg/sessions/redis/session_store_test.go+3−3 pkg/sessions/session_store.go+1−1 pkg/sessions/session_store_test.go+2−2 pkg/sessions/tests/session_store_tests.go+4−4 pkg/validation/cookie.go+1−1 pkg/validation/cookie_test.go+14−14 pkg/validation/options.go+1−1
pkg/apis/options/cookie.go+5−5
@@ -6,8 +6,8 @@ import (
66 "github.com/spf13/pflag"
77)
88
9−// CookieOptions contains configuration options relating to Cookie configuration
10−type CookieOptions struct {
9+// Cookie contains configuration options relating to Cookie configuration
10+type Cookie struct {
1111 Name string `flag:"cookie-name" cfg:"cookie_name"`
1212 Secret string `flag:"cookie-secret" cfg:"cookie_secret"`
1313 Domains []string `flag:"cookie-domain" cfg:"cookie_domains"`
@@ -35,9 +35,9 @@ func cookieFlagSet() *pflag.FlagSet {
3535 return flagSet
3636}
3737
38−// defaultCookieOptions creates a CookieOptions populating each field with its default value
39−func defaultCookieOptions() CookieOptions {
40− return CookieOptions{
38+// cookieDefaults creates a Cookie populating each field with its default value
39+func cookieDefaults() Cookie {
40+ return Cookie{
4141 Name: "_oauth2_proxy",
4242 Secret: "",
4343 Domains: nil,
pkg/apis/options/options.go+2−2
@@ -59,7 +59,7 @@ type Options struct {
5959 Banner string `flag:"banner" cfg:"banner"`
6060 Footer string `flag:"footer" cfg:"footer"`
6161
62− Cookie CookieOptions `cfg:",squash"`
62+ Cookie Cookie `cfg:",squash"`
6363 Session SessionOptions `cfg:",squash"`
6464 Logging Logging `cfg:",squash"`
6565
@@ -153,7 +153,7 @@ func NewOptions() *Options {
153153 RealClientIPHeader: "X-Real-IP",
154154 ForceHTTPS: false,
155155 DisplayHtpasswdForm: true,
156− Cookie: defaultCookieOptions(),
156+ Cookie: cookieDefaults(),
157157 Session: SessionOptions{
158158 Type: "cookie",
159159 },
pkg/cookies/cookies.go+1−1
@@ -38,7 +38,7 @@ func MakeCookie(req *http.Request, name string, value string, path string, domai
3838
3939// MakeCookieFromOptions constructs a cookie based on the given *options.CookieOptions,
4040// value and creation time
41−func MakeCookieFromOptions(req *http.Request, name string, value string, cookieOpts *options.CookieOptions, expiration time.Duration, now time.Time) *http.Cookie {
41+func MakeCookieFromOptions(req *http.Request, name string, value string, cookieOpts *options.Cookie, expiration time.Duration, now time.Time) *http.Cookie {
4242 domain := GetCookieDomain(req, cookieOpts.Domains)
4343
4444 if domain != "" {
pkg/sessions/cookie/session_store.go+12−12
@@ -28,8 +28,8 @@ var _ sessions.SessionStore = &SessionStore{}
2828// SessionStore is an implementation of the sessions.SessionStore
2929// interface that stores sessions in client side cookies
3030type SessionStore struct {
31− CookieOptions *options.CookieOptions
32− CookieCipher encryption.Cipher
31+ Cookie *options.Cookie
32+ CookieCipher encryption.Cipher
3333}
3434
3535// Save takes a sessions.SessionState and stores the information from it
@@ -50,12 +50,12 @@ func (s *SessionStore) Save(rw http.ResponseWriter, req *http.Request, ss *sessi
5050// Load reads sessions.SessionState information from Cookies within the
5151// HTTP request object
5252func (s *SessionStore) Load(req *http.Request) (*sessions.SessionState, error) {
53− c, err := loadCookie(req, s.CookieOptions.Name)
53+ c, err := loadCookie(req, s.Cookie.Name)
5454 if err != nil {
5555 // always http.ErrNoCookie
56− return nil, fmt.Errorf("cookie %q not present", s.CookieOptions.Name)
56+ return nil, fmt.Errorf("cookie %q not present", s.Cookie.Name)
5757 }
58− val, _, ok := encryption.Validate(c, s.CookieOptions.Secret, s.CookieOptions.Expire)
58+ val, _, ok := encryption.Validate(c, s.Cookie.Secret, s.Cookie.Expire)
5959 if !ok {
6060 return nil, errors.New("cookie signature not valid")
6161 }
@@ -71,7 +71,7 @@ func (s *SessionStore) Load(req *http.Request) (*sessions.SessionState, error) {
7171// clear the session
7272func (s *SessionStore) Clear(rw http.ResponseWriter, req *http.Request) error {
7373 // matches CookieName, CookieName_<number>
74− var cookieNameRegex = regexp.MustCompile(fmt.Sprintf("^%s(_\\d+)?$", s.CookieOptions.Name))
74+ var cookieNameRegex = regexp.MustCompile(fmt.Sprintf("^%s(_\\d+)?$", s.Cookie.Name))
7575
7676 for _, c := range req.Cookies() {
7777 if cookieNameRegex.MatchString(c.Name) {
@@ -105,9 +105,9 @@ func (s *SessionStore) setSessionCookie(rw http.ResponseWriter, req *http.Reques
105105// authentication details
106106func (s *SessionStore) makeSessionCookie(req *http.Request, value string, now time.Time) []*http.Cookie {
107107 if value != "" {
108− value = encryption.SignedValue(s.CookieOptions.Secret, s.CookieOptions.Name, []byte(value), now)
108+ value = encryption.SignedValue(s.Cookie.Secret, s.Cookie.Name, []byte(value), now)
109109 }
110− c := s.makeCookie(req, s.CookieOptions.Name, value, s.CookieOptions.Expire, now)
110+ c := s.makeCookie(req, s.Cookie.Name, value, s.Cookie.Expire, now)
111111
112112 if len(c.String()) > maxCookieLength {
113113 return splitCookie(c)
@@ -120,7 +120,7 @@ func (s *SessionStore) makeCookie(req *http.Request, name string, value string,
120120 req,
121121 name,
122122 value,
123− s.CookieOptions,
123+ s.Cookie,
124124 expiration,
125125 now,
126126 )
@@ -128,15 +128,15 @@ func (s *SessionStore) makeCookie(req *http.Request, name string, value string,
128128
129129// NewCookieSessionStore initialises a new instance of the SessionStore from
130130// the configuration given
131−func NewCookieSessionStore(opts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessions.SessionStore, error) {
131+func NewCookieSessionStore(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessions.SessionStore, error) {
132132 cipher, err := encryption.NewBase64Cipher(encryption.NewCFBCipher, encryption.SecretBytes(cookieOpts.Secret))
133133 if err != nil {
134134 return nil, fmt.Errorf("error initialising cipher: %v", err)
135135 }
136136
137137 return &SessionStore{
138− CookieCipher: cipher,
139− CookieOptions: cookieOpts,
138+ CookieCipher: cipher,
139+ Cookie: cookieOpts,
140140 }, nil
141141}
142142
pkg/sessions/cookie/session_store_test.go+1−1
@@ -25,7 +25,7 @@ func TestSessionStore(t *testing.T) {
2525
2626var _ = Describe("Cookie SessionStore Tests", func() {
2727 tests.RunSessionStoreTests(
28− func(opts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessionsapi.SessionStore, error) {
28+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
2929 // Set the connection URL
3030 opts.Type = options.CookieSessionStoreType
3131 return NewCookieSessionStore(opts, cookieOpts)
pkg/sessions/redis/redis_store.go+25−25
@@ -32,14 +32,14 @@ type TicketData struct {
3232// SessionStore is an implementation of the sessions.SessionStore
3333// interface that stores sessions in redis
3434type SessionStore struct {
35− CookieCipher encryption.Cipher
36− CookieOptions *options.CookieOptions
37− Client Client
35+ CookieCipher encryption.Cipher
36+ Cookie *options.Cookie
37+ Client Client
3838}
3939
4040// NewRedisSessionStore initialises a new instance of the SessionStore from
4141// the configuration given
42−func NewRedisSessionStore(opts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessions.SessionStore, error) {
42+func NewRedisSessionStore(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessions.SessionStore, error) {
4343 cipher, err := encryption.NewBase64Cipher(encryption.NewCFBCipher, encryption.SecretBytes(cookieOpts.Secret))
4444 if err != nil {
4545 return nil, fmt.Errorf("error initialising cipher: %v", err)
@@ -51,9 +51,9 @@ func NewRedisSessionStore(opts *options.SessionOptions, cookieOpts *options.Cook
5151 }
5252
5353 rs := &SessionStore{
54− Client: client,
55− CookieCipher: cipher,
56− CookieOptions: cookieOpts,
54+ Client: client,
55+ CookieCipher: cipher,
56+ Cookie: cookieOpts,
5757 }
5858 return rs, nil
5959
@@ -145,13 +145,13 @@ func (store *SessionStore) Save(rw http.ResponseWriter, req *http.Request, s *se
145145
146146 // Old sessions that we are refreshing would have a request cookie
147147 // New sessions don't, so we ignore the error. storeValue will check requestCookie
148− requestCookie, _ := req.Cookie(store.CookieOptions.Name)
148+ requestCookie, _ := req.Cookie(store.Cookie.Name)
149149 value, err := s.EncodeSessionState(store.CookieCipher)
150150 if err != nil {
151151 return err
152152 }
153153 ctx := req.Context()
154− ticketString, err := store.storeValue(ctx, value, store.CookieOptions.Expire, requestCookie)
154+ ticketString, err := store.storeValue(ctx, value, store.Cookie.Expire, requestCookie)
155155 if err != nil {
156156 return err
157157 }
@@ -159,7 +159,7 @@ func (store *SessionStore) Save(rw http.ResponseWriter, req *http.Request, s *se
159159 ticketCookie := store.makeCookie(
160160 req,
161161 ticketString,
162− store.CookieOptions.Expire,
162+ store.Cookie.Expire,
163163 *s.CreatedAt,
164164 )
165165
@@ -170,12 +170,12 @@ func (store *SessionStore) Save(rw http.ResponseWriter, req *http.Request, s *se
170170// Load reads sessions.SessionState information from a ticket
171171// cookie within the HTTP request object
172172func (store *SessionStore) Load(req *http.Request) (*sessions.SessionState, error) {
173− requestCookie, err := req.Cookie(store.CookieOptions.Name)
173+ requestCookie, err := req.Cookie(store.Cookie.Name)
174174 if err != nil {
175175 return nil, fmt.Errorf("error loading session: %s", err)
176176 }
177177
178− val, _, ok := encryption.Validate(requestCookie, store.CookieOptions.Secret, store.CookieOptions.Expire)
178+ val, _, ok := encryption.Validate(requestCookie, store.Cookie.Secret, store.Cookie.Expire)
179179 if !ok {
180180 return nil, fmt.Errorf("cookie signature not valid")
181181 }
@@ -189,12 +189,12 @@ func (store *SessionStore) Load(req *http.Request) (*sessions.SessionState, erro
189189
190190// loadSessionFromString loads the session based on the ticket value
191191func (store *SessionStore) loadSessionFromString(ctx context.Context, value string) (*sessions.SessionState, error) {
192− ticket, err := decodeTicket(store.CookieOptions.Name, value)
192+ ticket, err := decodeTicket(store.Cookie.Name, value)
193193 if err != nil {
194194 return nil, err
195195 }
196196
197− resultBytes, err := store.Client.Get(ctx, ticket.asHandle(store.CookieOptions.Name))
197+ resultBytes, err := store.Client.Get(ctx, ticket.asHandle(store.Cookie.Name))
198198 if err != nil {
199199 return nil, err
200200 }
@@ -227,7 +227,7 @@ func (store *SessionStore) Clear(rw http.ResponseWriter, req *http.Request) erro
227227 http.SetCookie(rw, clearCookie)
228228
229229 // If there was an existing cookie we should clear the session in redis
230− requestCookie, err := req.Cookie(store.CookieOptions.Name)
230+ requestCookie, err := req.Cookie(store.Cookie.Name)
231231 if err != nil && err == http.ErrNoCookie {
232232 // No existing cookie so can't clear redis
233233 return nil
@@ -235,17 +235,17 @@ func (store *SessionStore) Clear(rw http.ResponseWriter, req *http.Request) erro
235235 return fmt.Errorf("error retrieving cookie: %v", err)
236236 }
237237
238− val, _, ok := encryption.Validate(requestCookie, store.CookieOptions.Secret, store.CookieOptions.Expire)
238+ val, _, ok := encryption.Validate(requestCookie, store.Cookie.Secret, store.Cookie.Expire)
239239 if !ok {
240240 return fmt.Errorf("cookie signature not valid")
241241 }
242242
243243 // We only return an error if we had an issue with redis
244244 // If there's an issue decoding the ticket, ignore it
245− ticket, _ := decodeTicket(store.CookieOptions.Name, string(val))
245+ ticket, _ := decodeTicket(store.Cookie.Name, string(val))
246246 if ticket != nil {
247247 ctx := req.Context()
248− err := store.Client.Del(ctx, ticket.asHandle(store.CookieOptions.Name))
248+ err := store.Client.Del(ctx, ticket.asHandle(store.Cookie.Name))
249249 if err != nil {
250250 return fmt.Errorf("error clearing cookie from redis: %s", err)
251251 }
@@ -256,13 +256,13 @@ func (store *SessionStore) Clear(rw http.ResponseWriter, req *http.Request) erro
256256// makeCookie makes a cookie, signing the value if present
257257func (store *SessionStore) makeCookie(req *http.Request, value string, expires time.Duration, now time.Time) *http.Cookie {
258258 if value != "" {
259− value = encryption.SignedValue(store.CookieOptions.Secret, store.CookieOptions.Name, []byte(value), now)
259+ value = encryption.SignedValue(store.Cookie.Secret, store.Cookie.Name, []byte(value), now)
260260 }
261261 return cookies.MakeCookieFromOptions(
262262 req,
263− store.CookieOptions.Name,
263+ store.Cookie.Name,
264264 value,
265− store.CookieOptions,
265+ store.Cookie,
266266 expires,
267267 now,
268268 )
@@ -284,12 +284,12 @@ func (store *SessionStore) storeValue(ctx context.Context, value string, expirat
284284 stream := cipher.NewCFBEncrypter(block, ticket.Secret)
285285 stream.XORKeyStream(ciphertext, []byte(value))
286286
287− handle := ticket.asHandle(store.CookieOptions.Name)
287+ handle := ticket.asHandle(store.Cookie.Name)
288288 err = store.Client.Set(ctx, handle, ciphertext, expiration)
289289 if err != nil {
290290 return "", err
291291 }
292− return ticket.encodeTicket(store.CookieOptions.Name), nil
292+ return ticket.encodeTicket(store.Cookie.Name), nil
293293}
294294
295295// getTicket retrieves an existing ticket from the cookie if present,
@@ -300,14 +300,14 @@ func (store *SessionStore) getTicket(requestCookie *http.Cookie) (*TicketData, e
300300 }
301301
302302 // An existing cookie exists, try to retrieve the ticket
303− val, _, ok := encryption.Validate(requestCookie, store.CookieOptions.Secret, store.CookieOptions.Expire)
303+ val, _, ok := encryption.Validate(requestCookie, store.Cookie.Secret, store.Cookie.Expire)
304304 if !ok {
305305 // Cookie is invalid, create a new ticket
306306 return newTicket()
307307 }
308308
309309 // Valid cookie, decode the ticket
310− ticket, err := decodeTicket(store.CookieOptions.Name, string(val))
310+ ticket, err := decodeTicket(store.Cookie.Name, string(val))
311311 if err != nil {
312312 // If we can't decode the ticket we have to create a new one
313313 return newTicket()
pkg/sessions/redis/session_store_test.go+3−3
@@ -58,7 +58,7 @@ var _ = Describe("Redis SessionStore Tests", func() {
5858 })
5959
6060 tests.RunSessionStoreTests(
61− func(opts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessionsapi.SessionStore, error) {
61+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
6262 // Set the connection URL
6363 opts.Type = options.RedisSessionStoreType
6464 opts.Redis.ConnectionURL = "redis://" + mr.Addr()
@@ -87,7 +87,7 @@ var _ = Describe("Redis SessionStore Tests", func() {
8787 })
8888
8989 tests.RunSessionStoreTests(
90− func(opts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessionsapi.SessionStore, error) {
90+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
9191 // Set the sentinel connection URL
9292 sentinelAddr := "redis://" + ms.Addr()
9393 opts.Type = options.RedisSessionStoreType
@@ -109,7 +109,7 @@ var _ = Describe("Redis SessionStore Tests", func() {
109109
110110 Context("with cluster", func() {
111111 tests.RunSessionStoreTests(
112− func(opts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessionsapi.SessionStore, error) {
112+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
113113 clusterAddr := "redis://" + mr.Addr()
114114 opts.Type = options.RedisSessionStoreType
115115 opts.Redis.ClusterConnectionURLs = []string{clusterAddr}
pkg/sessions/session_store.go+1−1
@@ -10,7 +10,7 @@ import (
1010)
1111
1212// NewSessionStore creates a SessionStore from the provided configuration
13−func NewSessionStore(opts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessions.SessionStore, error) {
13+func NewSessionStore(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessions.SessionStore, error) {
1414 switch opts.Type {
1515 case options.CookieSessionStoreType:
1616 return cookie.NewCookieSessionStore(opts, cookieOpts)
pkg/sessions/session_store_test.go+2−2
@@ -24,7 +24,7 @@ func TestSessionStore(t *testing.T) {
2424
2525var _ = Describe("NewSessionStore", func() {
2626 var opts *options.SessionOptions
27− var cookieOpts *options.CookieOptions
27+ var cookieOpts *options.Cookie
2828
2929 BeforeEach(func() {
3030 opts = &options.SessionOptions{}
@@ -36,7 +36,7 @@ var _ = Describe("NewSessionStore", func() {
3636 Expect(err).ToNot(HaveOccurred())
3737
3838 // Set default options in CookieOptions
39− cookieOpts = &options.CookieOptions{
39+ cookieOpts = &options.Cookie{
4040 Name: "_oauth2_proxy",
4141 Secret: base64.URLEncoding.EncodeToString(secret),
4242 Path: "/",
pkg/sessions/tests/session_store_tests.go+4−4
@@ -21,7 +21,7 @@ import (
2121// Ginkgo has unpacked the tests.
2222// Interfaces have to be wrapped in closures otherwise nil pointers are thrown.
2323type testInput struct {
24− cookieOpts *options.CookieOptions
24+ cookieOpts *options.Cookie
2525 ss sessionStoreFunc
2626 session *sessionsapi.SessionState
2727 request *http.Request
@@ -38,7 +38,7 @@ type PersistentStoreFastForwardFunc func(time.Duration) error
3838
3939// NewSessionStoreFunc allows any session store implementation to configure their
4040// own session store before each test.
41−type NewSessionStoreFunc func(sessionOpts *options.SessionOptions, cookieOpts *options.CookieOptions) (sessionsapi.SessionStore, error)
41+type NewSessionStoreFunc func(sessionOpts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error)
4242
4343func RunSessionStoreTests(newSS NewSessionStoreFunc, persistentFastForward PersistentStoreFastForwardFunc) {
4444 Describe("Session Store Suite", func() {
@@ -62,7 +62,7 @@ func RunSessionStoreTests(newSS NewSessionStoreFunc, persistentFastForward Persi
6262 Expect(err).ToNot(HaveOccurred())
6363
6464 // Set default options in CookieOptions
65− cookieOpts := &options.CookieOptions{
65+ cookieOpts := &options.Cookie{
6666 Name: "_oauth2_proxy",
6767 Path: "/",
6868 Expire: time.Duration(168) * time.Hour,
@@ -111,7 +111,7 @@ func RunSessionStoreTests(newSS NewSessionStoreFunc, persistentFastForward Persi
111111
112112 Context("with non-default options", func() {
113113 BeforeEach(func() {
114− input.cookieOpts = &options.CookieOptions{
114+ input.cookieOpts = &options.Cookie{
115115 Name: "_cookie_name",
116116 Path: "/path",
117117 Expire: time.Duration(72) * time.Hour,
pkg/validation/cookie.go+1−1
@@ -9,7 +9,7 @@ import (
99 "github.com/oauth2-proxy/oauth2-proxy/pkg/encryption"
1010)
1111
12−func validateCookieOptions(o options.CookieOptions) []string {
12+func validateCookie(o options.Cookie) []string {
1313 msgs := validateCookieSecret(o.Secret)
1414
1515 if o.Refresh >= o.Expire {
pkg/validation/cookie_test.go+14−14
@@ -33,12 +33,12 @@ func TestValidateCookie(t *testing.T) {
3333
3434 testCases := []struct {
3535 name string
36− cookie options.CookieOptions
36+ cookie options.Cookie
3737 errStrings []string
3838 }{
3939 {
4040 name: "with valid configuration",
41− cookie: options.CookieOptions{
41+ cookie: options.Cookie{
4242 Name: validName,
4343 Secret: validSecret,
4444 Domains: domains,
@@ -53,7 +53,7 @@ func TestValidateCookie(t *testing.T) {
5353 },
5454 {
5555 name: "with no cookie secret",
56− cookie: options.CookieOptions{
56+ cookie: options.Cookie{
5757 Name: validName,
5858 Secret: "",
5959 Domains: emptyDomains,
@@ -70,7 +70,7 @@ func TestValidateCookie(t *testing.T) {
7070 },
7171 {
7272 name: "with an invalid cookie secret",
73− cookie: options.CookieOptions{
73+ cookie: options.Cookie{
7474 Name: validName,
7575 Secret: invalidSecret,
7676 Domains: emptyDomains,
@@ -87,7 +87,7 @@ func TestValidateCookie(t *testing.T) {
8787 },
8888 {
8989 name: "with a valid Base64 secret",
90− cookie: options.CookieOptions{
90+ cookie: options.Cookie{
9191 Name: validName,
9292 Secret: validBase64Secret,
9393 Domains: emptyDomains,
@@ -102,7 +102,7 @@ func TestValidateCookie(t *testing.T) {
102102 },
103103 {
104104 name: "with an invalid Base64 secret",
105− cookie: options.CookieOptions{
105+ cookie: options.Cookie{
106106 Name: validName,
107107 Secret: invalidBase64Secret,
108108 Domains: emptyDomains,
@@ -119,7 +119,7 @@ func TestValidateCookie(t *testing.T) {
119119 },
120120 {
121121 name: "with an invalid name",
122− cookie: options.CookieOptions{
122+ cookie: options.Cookie{
123123 Name: invalidName,
124124 Secret: validSecret,
125125 Domains: emptyDomains,
@@ -136,7 +136,7 @@ func TestValidateCookie(t *testing.T) {
136136 },
137137 {
138138 name: "with refresh longer than expire",
139− cookie: options.CookieOptions{
139+ cookie: options.Cookie{
140140 Name: validName,
141141 Secret: validSecret,
142142 Domains: emptyDomains,
@@ -153,7 +153,7 @@ func TestValidateCookie(t *testing.T) {
153153 },
154154 {
155155 name: "with samesite \"none\"",
156− cookie: options.CookieOptions{
156+ cookie: options.Cookie{
157157 Name: validName,
158158 Secret: validSecret,
159159 Domains: emptyDomains,
@@ -168,7 +168,7 @@ func TestValidateCookie(t *testing.T) {
168168 },
169169 {
170170 name: "with samesite \"lax\"",
171− cookie: options.CookieOptions{
171+ cookie: options.Cookie{
172172 Name: validName,
173173 Secret: validSecret,
174174 Domains: emptyDomains,
@@ -183,7 +183,7 @@ func TestValidateCookie(t *testing.T) {
183183 },
184184 {
185185 name: "with samesite \"strict\"",
186− cookie: options.CookieOptions{
186+ cookie: options.Cookie{
187187 Name: validName,
188188 Secret: validSecret,
189189 Domains: emptyDomains,
@@ -198,7 +198,7 @@ func TestValidateCookie(t *testing.T) {
198198 },
199199 {
200200 name: "with samesite \"invalid\"",
201− cookie: options.CookieOptions{
201+ cookie: options.Cookie{
202202 Name: validName,
203203 Secret: validSecret,
204204 Domains: emptyDomains,
@@ -215,7 +215,7 @@ func TestValidateCookie(t *testing.T) {
215215 },
216216 {
217217 name: "with a combination of configuration errors",
218− cookie: options.CookieOptions{
218+ cookie: options.Cookie{
219219 Name: invalidName,
220220 Secret: invalidSecret,
221221 Domains: domains,
@@ -237,7 +237,7 @@ func TestValidateCookie(t *testing.T) {
237237
238238 for _, tc := range testCases {
239239 t.Run(tc.name, func(t *testing.T) {
240− errStrings := validateCookieOptions(tc.cookie)
240+ errStrings := validateCookie(tc.cookie)
241241 g := NewWithT(t)
242242
243243 g.Expect(errStrings).To(ConsistOf(tc.errStrings))
pkg/validation/options.go+1−1
@@ -26,7 +26,7 @@ import (
2626// Validate checks that required options are set and validates those that they
2727// are of the correct format
2828func Validate(o *options.Options) error {
29− msgs := validateCookieOptions(o.Cookie)
29+ msgs := validateCookie(o.Cookie)
3030
3131 if o.SSLInsecureSkipVerify {
3232 insecureTransport := &http.Transport{