func (auth *AuthHTTP) createAuthDb(backendFile string) error { var err error os.Mkdir(backendFile, 0755) auth.backend, err = httpauth.NewLeveldbAuthBackend(backendFile) if err != nil { log.Printf("Error creating Auth backend: %s", err) return err } return nil }
func main() { var err error os.Mkdir(backendfile, 0755) defer os.Remove(backendfile) // create the backend backend, err = httpauth.NewLeveldbAuthBackend(backendfile) if err != nil { panic(err) } // create some default roles roles = make(map[string]httpauth.Role) roles["user"] = 30 roles["admin"] = 80 aaa, err = httpauth.NewAuthorizer(backend, []byte("cookie-encryption-key"), "user", roles) // create a default user username := "******" defaultUser := httpauth.UserData{Username: username, Role: "admin"} err = backend.SaveUser(defaultUser) if err != nil { panic(err) } // Update user with a password and email address err = aaa.Update(nil, nil, username, "adminadmin", "*****@*****.**") if err != nil { panic(err) } // set up routers and route handlers r := mux.NewRouter() r.HandleFunc("/login", getLogin).Methods("GET") r.HandleFunc("/register", postRegister).Methods("POST") r.HandleFunc("/login", postLogin).Methods("POST") r.HandleFunc("/admin", handleAdmin).Methods("GET") r.HandleFunc("/add_user", postAddUser).Methods("POST") r.HandleFunc("/change", postChange).Methods("POST") r.HandleFunc("/", handlePage).Methods("GET") // authorized page r.HandleFunc("/logout", handleLogout) http.Handle("/", r) fmt.Printf("Server running on port %d\n", port) http.ListenAndServe(fmt.Sprintf(":%d", port), nil) }