Skip to content

Commit

Permalink
support DEMO access code
Browse files Browse the repository at this point in the history
  • Loading branch information
stremovsky committed Apr 22, 2020
1 parent 948d7b3 commit ab9981b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
6 changes: 5 additions & 1 deletion run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@
#/bin/busybox find /databunker

if [ ! -f /databunker/data/databunker.db ]; then
OPTION="-init"
if [ "$1" == "demo" ]; then
OPTION="-demoinit"
fi
echo "-------------INIT------------"
#/bin/busybox mkdir -p /tmp
RESULT=`/databunker/bin/databunker -init -db /databunker/data/databunker.db -conf /databunker/conf/databunker.yaml > /tmp/init.txt`
RESULT=`/databunker/bin/databunker $OPTION -db /databunker/data/databunker.db -conf /databunker/conf/databunker.yaml > /tmp/init.txt`
if [ ! -f /databunker/data/databunker.db ]; then
echo "Failed to init databunker database. Probably permission issue for /databunker/data directory."
/bin/busybox sleep 60
Expand Down
9 changes: 5 additions & 4 deletions src/bunker.go
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ func logRequest(handler http.Handler) http.Handler {
})
}

func setupDB(dbPtr *string) (*dbcon, string, error) {
func setupDB(dbPtr *string, demo bool) (*dbcon, string, error) {
fmt.Printf("\nDatabunker init\n\n")
masterKey, err := generateMasterKey()
hash := md5.Sum(masterKey)
Expand All @@ -367,7 +367,7 @@ func setupDB(dbPtr *string) (*dbcon, string, error) {
log.Fatalf("db init error %s", err.Error())
}
db := &dbcon{store, masterKey, hash[:]}
rootToken, err := db.createRootXtoken()
rootToken, err := db.createRootXtoken(demo)
if err != nil {
//log.Panic("error %s", err.Error())
fmt.Printf("error %s", err.Error())
Expand Down Expand Up @@ -401,6 +401,7 @@ func main() {
lockMemory()
//fmt.Printf("%+v\n", cfg)
initPtr := flag.Bool("init", false, "generate master key and init database")
demoPtr := flag.Bool("demoinit", false, "generate master key with a DEMO access token")
startPtr := flag.Bool("start", false, "start databunker service. User DATABUNKER_MASTERKEY environment variable.")
masterKeyPtr := flag.String("masterkey", "", "master key")
dbPtr := flag.String("db", "databunker", "database file")
Expand All @@ -410,8 +411,8 @@ func main() {
var cfg Config
readFile(&cfg, confPtr)
readEnv(&cfg)
if *initPtr {
db, _, _ := setupDB(dbPtr)
if *initPtr || *demoPtr {
db, _, _ := setupDB(dbPtr, *demoPtr)
db.store.CloseDB()
os.Exit(0)
}
Expand Down
9 changes: 6 additions & 3 deletions src/xtokens_db.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,21 @@ func (dbobj dbcon) getRootXtoken() (string, error) {
return record["xtoken"].(string), nil
}

func (dbobj dbcon) createRootXtoken() (string, error) {
func (dbobj dbcon) createRootXtoken(demo bool) (string, error) {
rootToken, err := dbobj.getRootXtoken()
if err != nil {
return "", err
}
if len(rootToken) > 0 {
return rootToken, nil
return "already-initalized", nil
}
rootToken, err = uuid.GenerateUUID()
if err != nil {
return "", err
}
if demo {
rootToken = "DEMO"
}
bdoc := bson.M{}
bdoc["xtoken"] = hashString(dbobj.hash, rootToken)
bdoc["type"] = "root"
Expand Down Expand Up @@ -90,7 +93,7 @@ func (dbobj dbcon) checkXtoken(xtokenUUID string) bool {

func (dbobj dbcon) checkUserAuthXToken(xtokenUUID string) (tokenAuthResult, error) {
result := tokenAuthResult{}
if isValidUUID(xtokenUUID) == false {
if xtokenUUID != "DEMO" && isValidUUID(xtokenUUID) == false {
return result, errors.New("failed to authenticate")
}
xtokenHashed := hashString(dbobj.hash, xtokenUUID)
Expand Down

0 comments on commit ab9981b

Please sign in to comment.