macaroons: ensure path for macaroon DB exists
Co-Authored-By: Karl Ranna <karl@karlranna.com>
This commit is contained in:
parent
4ba6a59e75
commit
856500dc43
@ -3,6 +3,7 @@ package macaroons
|
|||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
@ -40,10 +41,18 @@ type Service struct {
|
|||||||
// such as those for `allow`, `time-before`, `declared`, and `error` caveats
|
// such as those for `allow`, `time-before`, `declared`, and `error` caveats
|
||||||
// are registered automatically and don't need to be added.
|
// are registered automatically and don't need to be added.
|
||||||
func NewService(dir string, checks ...Checker) (*Service, error) {
|
func NewService(dir string, checks ...Checker) (*Service, error) {
|
||||||
|
// Ensure that the path to the directory exists.
|
||||||
|
if _, err := os.Stat(dir); os.IsNotExist(err) {
|
||||||
|
if err := os.MkdirAll(dir, 0700); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Open the database that we'll use to store the primary macaroon key,
|
// Open the database that we'll use to store the primary macaroon key,
|
||||||
// and all generated macaroons+caveats.
|
// and all generated macaroons+caveats.
|
||||||
macaroonDB, err := bolt.Open(path.Join(dir, DBFilename), 0600,
|
macaroonDB, err := bolt.Open(
|
||||||
bolt.DefaultOptions)
|
path.Join(dir, DBFilename), 0600, bolt.DefaultOptions,
|
||||||
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user