func (c *Client) Create(ctx *cli.Context) { seq, err := sequence.RuneSequence(10, []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")) if err != nil { log.Fatalf("err") } client := &osin.DefaultClient{ Id: uuid.New(), Secret: string(seq), RedirectUri: "", UserData: "", } c.Ctx.Start() if err := c.Ctx.Osins.CreateClient(client); err != nil { log.Fatalf("%s", err) } fmt.Printf(`Created client "%s" with secret "%s".`+"\n", client.Id, client.Secret) if ctx.Bool("as-superuser") { if err := c.Ctx.Policies.Create(superUserPolicy(client.Id)); err != nil { log.Fatalf("%s", err) } fmt.Printf(`Granted superuser privileges to client "%s".`+"\n", client.Id) } }
func (h *Handler) Create(ctx context.Context, rw http.ResponseWriter, req *http.Request) { var p payload decoder := json.NewDecoder(req.Body) if err := decoder.Decode(&p); err != nil { http.Error(rw, err.Error(), http.StatusBadRequest) return } if v, err := govalidator.ValidateStruct(p); !v { if err != nil { http.Error(rw, err.Error(), http.StatusBadRequest) return } http.Error(rw, "Payload did not validate.", http.StatusBadRequest) return } secret, err := sequence.RuneSequence(12, []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")) if err != nil { http.Error(rw, err.Error(), http.StatusInternalServerError) return } client := &osin.DefaultClient{ Id: uuid.New(), Secret: string(secret), RedirectUri: p.RedirectURIs, UserData: "{}", } if err := h.s.CreateClient(client); err != nil { http.Error(rw, err.Error(), http.StatusInternalServerError) return } WriteJSON(rw, client) }