mirror of
https://github.com/hashicorp/vault.git
synced 2026-05-05 12:26:34 +02:00
Merge pull request #2257 from bkrodgers/git-config-read
Added a 'read' for github config
This commit is contained in:
commit
3754d68d44
@ -7,6 +7,7 @@ import (
|
||||
|
||||
"github.com/hashicorp/vault/logical"
|
||||
"github.com/hashicorp/vault/logical/framework"
|
||||
"github.com/fatih/structs"
|
||||
)
|
||||
|
||||
func pathConfig(b *backend) *framework.Path {
|
||||
@ -36,6 +37,7 @@ API-compatible authentication server.`,
|
||||
|
||||
Callbacks: map[logical.Operation]framework.OperationFunc{
|
||||
logical.UpdateOperation: b.pathConfigWrite,
|
||||
logical.ReadOperation: b.pathConfigRead,
|
||||
},
|
||||
}
|
||||
}
|
||||
@ -75,10 +77,10 @@ func (b *backend) pathConfigWrite(
|
||||
}
|
||||
|
||||
entry, err := logical.StorageEntryJSON("config", config{
|
||||
Org: organization,
|
||||
BaseURL: baseURL,
|
||||
TTL: ttl,
|
||||
MaxTTL: maxTTL,
|
||||
Organization: organization,
|
||||
BaseURL: baseURL,
|
||||
TTL: ttl,
|
||||
MaxTTL: maxTTL,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
@ -92,6 +94,25 @@ func (b *backend) pathConfigWrite(
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (b *backend) pathConfigRead(req *logical.Request, data *framework.FieldData) (*logical.Response, error) {
|
||||
config, err := b.Config(req.Storage)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if config == nil {
|
||||
return nil, fmt.Errorf("configuration object not found")
|
||||
}
|
||||
|
||||
config.TTL /= time.Second
|
||||
config.MaxTTL /= time.Second
|
||||
|
||||
resp := &logical.Response{
|
||||
Data: structs.New(config).Map(),
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// Config returns the configuration for this backend.
|
||||
func (b *backend) Config(s logical.Storage) (*config, error) {
|
||||
entry, err := s.Get("config")
|
||||
@ -110,8 +131,8 @@ func (b *backend) Config(s logical.Storage) (*config, error) {
|
||||
}
|
||||
|
||||
type config struct {
|
||||
Org string `json:"organization"`
|
||||
BaseURL string `json:"base_url"`
|
||||
TTL time.Duration `json:"ttl"`
|
||||
MaxTTL time.Duration `json:"max_ttl"`
|
||||
Organization string `json:"organization" structs:"organization" mapstructure:"organization"`
|
||||
BaseURL string `json:"base_url" structs:"base_url" mapstructure:"base_url"`
|
||||
TTL time.Duration `json:"ttl" structs:"ttl" mapstructure:"ttl"`
|
||||
MaxTTL time.Duration `json:"max_ttl" structs:"max_ttl" mapstructure:"max_ttl"`
|
||||
}
|
||||
|
||||
@ -107,7 +107,7 @@ func (b *backend) verifyCredentials(req *logical.Request, token string) (*verify
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
if config.Org == "" {
|
||||
if config.Organization == "" {
|
||||
return nil, logical.ErrorResponse(
|
||||
"configure the github credential backend first"), nil
|
||||
}
|
||||
@ -152,7 +152,7 @@ func (b *backend) verifyCredentials(req *logical.Request, token string) (*verify
|
||||
}
|
||||
|
||||
for _, o := range allOrgs {
|
||||
if strings.ToLower(*o.Login) == strings.ToLower(config.Org) {
|
||||
if strings.ToLower(*o.Login) == strings.ToLower(config.Organization) {
|
||||
org = o
|
||||
break
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user