auth

Paddy 2015-06-29 Parent:807d20a0b197 Child:0a2c3d677161

175:aa14e29b666f Go to Latest

auth/config.go

Create Docker image for authd. Create a Dockerfile for authd, which will wrap the compiled Go binary up into a tiny little Docker image. Create an authd/build-docker.sh script that will build the statically-linked binary in a Docker container, so the authd Docker image can use it. We had to include ca-certificates.crt in the Dockerfile, as well, so we could communicate over SSL with things. A wrapper.sh file is included that will pull the JWT_SECRET environment variable out of a kubernetes secrets file, which is a handy wrapper to have. Finally, we added the authd/docker-authd binary to the .hgignore.

History
1 package auth
3 import (
4 "errors"
5 "html/template"
6 "log"
7 )
9 var (
10 // ErrInvalidLoginURI is returned when a Context is instantiated with a Config object that specifies a LoginURI that can't be parsed as a URL.
11 ErrInvalidLoginURI = errors.New("invalid login URI")
12 // ErrConfigNotInitialized is returned when a Context is instantiated with a Config object that hasn't had its Init function called.
13 ErrConfigNotInitialized = errors.New("config not initialized")
15 // Version is used to keep track of what version of the build this is
16 Version string
17 )
19 // Config holds the configuration values necessary to run a server. A Config
20 // instance is the only way to instantiate a Context variable.
21 type Config struct {
22 ClientStore clientStore
23 AuthCodeStore authorizationCodeStore
24 ProfileStore profileStore
25 TokenStore tokenStore
26 SessionStore sessionStore
27 ScopeStore scopeStore
28 LoginVerificationNotifier loginVerificationNotifier
29 Template *template.Template
30 LoginURI string
31 JWTPrivateKey []byte
32 iterations int
33 secureCookie bool
34 }
36 // Init is a function that preps the Config object to be used for Context creation, setting variables
37 // that are determined at the beginning of program execution.
38 func (c *Config) Init() error {
39 scheme, ok := passphraseSchemes[CurPassphraseScheme]
40 if !ok {
41 return ErrInvalidPassphraseScheme
42 }
43 var err error
44 c.iterations, err = scheme.calculateIterations()
45 if err != nil {
46 return err
47 }
48 log.Printf("Generating passphrases with %d iterations...\n", c.iterations)
49 return nil
50 }