Documentation ¶
Overview ¶
Package signer providers functions for sign http request before request cloud.
Index ¶
Constants ¶
const ContentSha256HeaderKey = "x-sdk-content-sha256"
The header key of content hash value
const SignAlgorithmHMACSHA256 = "SDK-HMAC-SHA256"
The default sign algorithm
Variables ¶
This section is empty.
Functions ¶
func HashSha256 ¶
HashSha256 is a wrapper for sha256 implementation.
func HmacSha256 ¶
HmacSha256 implements the Keyed-Hash Message Authentication Code computation.
func Sign ¶
func Sign(req *http.Request, signOptions SignOptions)
Sign manipulates the http.Request instance with some required authentication headers for SK/SK auth.
Types ¶
type AKSKOptions ¶
type AKSKOptions struct { // IdentityEndpoint specifies the HTTP endpoint that is required to work with // the Identity API of the appropriate version. While it's ultimately needed by // all of the identity services, it will often be populated by a provider-level // function. // // The IdentityEndpoint is typically referred to as the "auth_url" or // "OS_AUTH_URL" in the information provided by the cloud operator. IdentityEndpoint string `json:"-" required:"true"` // user project id ProjectID string DomainID string `json:"-" required:"true"` // region Region string //Cloud name Domain string //Cloud name Cloud string AccessKey string //Access Key SecretKey string //Secret key SecurityToken string }
AKSKAuthOptions presents the required information for AK/SK auth
func (AKSKOptions) GetDomainId ¶
func (opts AKSKOptions) GetDomainId() string
GetDomainId,Implements the method of AuthOptionsProvider
func (AKSKOptions) GetIdentityEndpoint ¶
func (opts AKSKOptions) GetIdentityEndpoint() string
GetIdentityEndpoint,Implements the method of AuthOptionsProvider
func (AKSKOptions) GetProjectId ¶
func (opts AKSKOptions) GetProjectId() string
GetProjectId, Implements the method of AuthOptionsProvider
type MemoryCache ¶
type MemoryCache struct { sync.Mutex // handling r/w for cache MaxCount int // max cache entry count // contains filtered or unexported fields }
MemoryCache presents a thread safe memory cache
func (*MemoryCache) Add ¶
func (cache *MemoryCache) Add(cacheKey string, cacheData string)
Add an new cache item
func (*MemoryCache) Get ¶
func (cache *MemoryCache) Get(cacheKey string) string
Get a cache item by its key
type SignOptions ¶
type SignOptions struct { AccessKey string //Access Key SecretKey string //Secret key RegionName string // Region name ServiceName string // Service Name EnableCacheSignKey bool // Cache sign key for one day or not cache, cache is disabled by default SignAlgorithm string //The algorithm used for sign, the default value is "SDK-HMAC-SHA256" if you don't set its value TimeOffsetInseconds int64 // TimeOffsetInseconds is used for adjust x-sdk-date if set its value // contains filtered or unexported fields }
SignOptions represents the options during signing http request, it is concurrency safely. Sample code:
client := &http.Client{ Timeout: time.Duration(3 * time.Second), } req, err := http.NewRequest("POST", "https://30030113-3657-4fb6-a7ef-90764239b038.apigw.xxx.yyy.com/app1?name=value",bytes.NewBuffer([]byte("demo"))) signOptions := signer.SignOptions{ AccessKey: "------------", SecretKey: "------------", } signer.Sign(req, signOptions) resp, err := client.Do(req)
type StringBuilder ¶
type StringBuilder struct {
// contains filtered or unexported fields
}
StringBuilder wraps bytes.Buffer to implement a high performance string builder.
func (*StringBuilder) GetBytes ¶
func (buff *StringBuilder) GetBytes() []byte
func (*StringBuilder) ToString ¶
func (buff *StringBuilder) ToString() string
func (*StringBuilder) Write ¶
func (buff *StringBuilder) Write(s string) *StringBuilder