OLD | NEW |
1 // Copyright 2016 The LUCI Authors. All rights reserved. | 1 // Copyright 2016 The LUCI Authors. All rights reserved. |
2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
4 | 4 |
5 package authdb | 5 package authdb |
6 | 6 |
7 import ( | 7 import ( |
8 "net" | 8 "net" |
9 | 9 |
10 "golang.org/x/net/context" | 10 "golang.org/x/net/context" |
11 | 11 |
12 "github.com/luci/luci-go/common/logging" | 12 "github.com/luci/luci-go/common/logging" |
13 "github.com/luci/luci-go/server/auth/identity" | 13 "github.com/luci/luci-go/server/auth/identity" |
| 14 "github.com/luci/luci-go/server/auth/signing" |
14 "github.com/luci/luci-go/server/secrets" | 15 "github.com/luci/luci-go/server/secrets" |
15 ) | 16 ) |
16 | 17 |
17 // ErroringDB implements DB by forbidding all access and returning errors. | 18 // ErroringDB implements DB by forbidding all access and returning errors. |
18 type ErroringDB struct { | 19 type ErroringDB struct { |
19 Error error // returned by all calls | 20 Error error // returned by all calls |
20 } | 21 } |
21 | 22 |
22 // IsAllowedOAuthClientID returns true if given OAuth2 client_id can be used | 23 // IsAllowedOAuthClientID returns true if given OAuth2 client_id can be used |
23 // to authenticate access for given email. | 24 // to authenticate access for given email. |
(...skipping 13 matching lines...) Expand all Loading... |
37 | 38 |
38 // SharedSecrets is secrets.Store with secrets in Auth DB. | 39 // SharedSecrets is secrets.Store with secrets in Auth DB. |
39 // | 40 // |
40 // Such secrets are usually generated on central Auth Service and are known | 41 // Such secrets are usually generated on central Auth Service and are known |
41 // to all trusted services (so that they can use them to exchange data). | 42 // to all trusted services (so that they can use them to exchange data). |
42 func (db ErroringDB) SharedSecrets(c context.Context) (secrets.Store, error) { | 43 func (db ErroringDB) SharedSecrets(c context.Context) (secrets.Store, error) { |
43 logging.Errorf(c, "%s", db.Error) | 44 logging.Errorf(c, "%s", db.Error) |
44 return nil, db.Error | 45 return nil, db.Error |
45 } | 46 } |
46 | 47 |
| 48 // GetCertificates returns a bundle with certificates of a trusted signer. |
| 49 func (db ErroringDB) GetCertificates(c context.Context, id identity.Identity) (*
signing.PublicCertificates, error) { |
| 50 logging.Errorf(c, "%s", db.Error) |
| 51 return nil, db.Error |
| 52 } |
| 53 |
47 // GetWhitelistForIdentity returns name of the IP whitelist to use to check | 54 // GetWhitelistForIdentity returns name of the IP whitelist to use to check |
48 // IP of requests from given `ident`. | 55 // IP of requests from given `ident`. |
49 // | 56 // |
50 // It's used to restrict access for certain account to certain IP subnets. | 57 // It's used to restrict access for certain account to certain IP subnets. |
51 // | 58 // |
52 // Returns ("", nil) if `ident` is not IP restricted. | 59 // Returns ("", nil) if `ident` is not IP restricted. |
53 func (db ErroringDB) GetWhitelistForIdentity(c context.Context, ident identity.I
dentity) (string, error) { | 60 func (db ErroringDB) GetWhitelistForIdentity(c context.Context, ident identity.I
dentity) (string, error) { |
54 logging.Errorf(c, "%s", db.Error) | 61 logging.Errorf(c, "%s", db.Error) |
55 return "", db.Error | 62 return "", db.Error |
56 } | 63 } |
57 | 64 |
58 // IsInWhitelist returns true if IP address belongs to given named IP whitelist. | 65 // IsInWhitelist returns true if IP address belongs to given named IP whitelist. |
59 // | 66 // |
60 // IP whitelist is a set of IP subnets. Unknown IP whitelists are considered | 67 // IP whitelist is a set of IP subnets. Unknown IP whitelists are considered |
61 // empty. May return errors if underlying datastore has issues. | 68 // empty. May return errors if underlying datastore has issues. |
62 func (db ErroringDB) IsInWhitelist(c context.Context, ip net.IP, whitelist strin
g) (bool, error) { | 69 func (db ErroringDB) IsInWhitelist(c context.Context, ip net.IP, whitelist strin
g) (bool, error) { |
63 logging.Errorf(c, "%s", db.Error) | 70 logging.Errorf(c, "%s", db.Error) |
64 return false, db.Error | 71 return false, db.Error |
65 } | 72 } |
66 | 73 |
67 // GetAuthServiceURL returns root URL ("https://<host>") of the auth service. | 74 // GetAuthServiceURL returns root URL ("https://<host>") of the auth service. |
68 func (db ErroringDB) GetAuthServiceURL(c context.Context) (string, error) { | 75 func (db ErroringDB) GetAuthServiceURL(c context.Context) (string, error) { |
69 return "", db.Error | 76 return "", db.Error |
70 } | 77 } |
71 | 78 |
72 // GetTokenServiceURL returns root URL ("https://<host>") of the token service. | 79 // GetTokenServiceURL returns root URL ("https://<host>") of the token service. |
73 func (db ErroringDB) GetTokenServiceURL(c context.Context) (string, error) { | 80 func (db ErroringDB) GetTokenServiceURL(c context.Context) (string, error) { |
74 return "", db.Error | 81 return "", db.Error |
75 } | 82 } |
OLD | NEW |