コード例 #1
0
ファイル: keys.go プロジェクト: cmc333333/fragspace
func ConfigKey(name string) []byte {
	config, err := conf.ReadConfigFile("config.ini")
	if err != nil {
		panic(err)
	}
	keyStr, err := config.GetString("encryption", name)
	if err != nil {
		panic(err)
	}
	key, err := hex.DecodeString(keyStr)
	if err != nil {
		panic(err)
	}
	return key
}
コード例 #2
0
ファイル: requirements.go プロジェクト: cmc333333/fragspace
func ReqTrustedClient(req *http.Request, success func(string) fhttp.Response) fhttp.Response {
	config, err := conf.ReadConfigFile("config.ini")
	if err != nil {
		panic(err)
	}
	clientId, err := config.GetString("webclient", "clientId")
	if err != nil {
		panic(err)
	}
	token := oauth2.DecodeToken(req)
	if token == nil || token.Client != clientId {
		return fhttp.UserError("invalid_token")
	}
	return success(token.User)
}
コード例 #3
0
ファイル: authentication.go プロジェクト: cmc333333/fragspace
func newAuth(context appengine.Context) *Auth {
	client := urlfetch.Client(context)
	c, err := conf.ReadConfigFile("config.ini")
	if err != nil {
		panic(lib.ServerError{"could not read config file: " + err.String()})
	}
	username, err := c.GetString("rackspace", "username")
	if err != nil {
		panic(lib.ServerError{"could not read username: "******"rackspace", "key")
	if err != nil {
		panic(lib.ServerError{"could not read key: " + err.String()})
	}

	//  post an empty body
	req, err := http.NewRequest("GET", "https://auth.api.rackspacecloud.com/v1.0", nil)
	if err != nil {
		panic(lib.ServerError{"could not create request: " + err.String()})
	}
	req.Header.Add("x-Auth-Key", key)
	req.Header.Add("x-Auth-User", username)

	res, err := client.Do(req)
	if err != nil {
		panic(lib.ServerError{"problem contacting hosting provider: " + err.String()})
	}

	auth := Auth{res.Header.Get("X-Server-Management-Url"), res.Header.Get("X-Auth-Token")}
	err = memcache.Gob.Set(context, &memcache.Item{
		Key:    "rackspace-auth",
		Object: auth,
	})
	if err != nil {
		context.Warningf("could not write to memcache: %v", err.String())
	}
	return &auth
}