@@ -18,6 +18,7 @@ import (
1818 "github.com/dgrijalva/jwt-go"
1919 "github.com/mbland/hmacauth"
2020 "github.com/pusher/oauth2_proxy/logger"
21+ "github.com/pusher/oauth2_proxy/pkg/apis/options"
2122 "github.com/pusher/oauth2_proxy/providers"
2223 "gopkg.in/natefinch/lumberjack.v2"
2324)
@@ -49,14 +50,8 @@ type Options struct {
4950 CustomTemplatesDir string `flag:"custom-templates-dir" cfg:"custom_templates_dir" env:"OAUTH2_PROXY_CUSTOM_TEMPLATES_DIR"`
5051 Footer string `flag:"footer" cfg:"footer" env:"OAUTH2_PROXY_FOOTER"`
5152
52− CookieName string `flag:"cookie-name" cfg:"cookie_name" env:"OAUTH2_PROXY_COOKIE_NAME"`
53− CookieSecret string `flag:"cookie-secret" cfg:"cookie_secret" env:"OAUTH2_PROXY_COOKIE_SECRET"`
54− CookieDomain string `flag:"cookie-domain" cfg:"cookie_domain" env:"OAUTH2_PROXY_COOKIE_DOMAIN"`
55− CookiePath string `flag:"cookie-path" cfg:"cookie_path" env:"OAUTH2_PROXY_COOKIE_PATH"`
56− CookieExpire time.Duration `flag:"cookie-expire" cfg:"cookie_expire" env:"OAUTH2_PROXY_COOKIE_EXPIRE"`
57− CookieRefresh time.Duration `flag:"cookie-refresh" cfg:"cookie_refresh" env:"OAUTH2_PROXY_COOKIE_REFRESH"`
58− CookieSecure bool `flag:"cookie-secure" cfg:"cookie_secure" env:"OAUTH2_PROXY_COOKIE_SECURE"`
59− CookieHTTPOnly bool `flag:"cookie-httponly" cfg:"cookie_httponly" env:"OAUTH2_PROXY_COOKIE_HTTPONLY"`
53+ // Embed CookieOptions
54+ options.CookieOptions
6055
6156 Upstreams []string `flag:"upstream" cfg:"upstreams" env:"OAUTH2_PROXY_UPSTREAMS"`
6257 SkipAuthRegex []string `flag:"skip-auth-regex" cfg:"skip_auth_regex" env:"OAUTH2_PROXY_SKIP_AUTH_REGEX"`
@@ -126,16 +121,18 @@ type SignatureData struct {
126121// NewOptions constructs a new Options with defaulted values
127122func NewOptions() *Options {
128123 return &Options{
129− ProxyPrefix: "/oauth2",
130− ProxyWebSockets: true,
131− HTTPAddress: "127.0.0.1:4180",
132− HTTPSAddress: ":443",
133− DisplayHtpasswdForm: true,
134− CookieName: "_oauth2_proxy",
135− CookieSecure: true,
136− CookieHTTPOnly: true,
137− CookieExpire: time.Duration(168) * time.Hour,
138− CookieRefresh: time.Duration(0),
124+ ProxyPrefix: "/oauth2",
125+ ProxyWebSockets: true,
126+ HTTPAddress: "127.0.0.1:4180",
127+ HTTPSAddress: ":443",
128+ DisplayHtpasswdForm: true,
129+ CookieOptions: options.CookieOptions{
130+ CookieName: "_oauth2_proxy",
131+ CookieSecure: true,
132+ CookieHTTPOnly: true,
133+ CookieExpire: time.Duration(168) * time.Hour,
134+ CookieRefresh: time.Duration(0),
135+ },
139136 SetXAuthRequest: false,
140137 SkipAuthPreflight: false,
141138 PassBasicAuth: true,