Browse Source

delete sign value

tags/v1.1.4
liangzy 3 years ago
parent
commit
27327e0788
2 changed files with 70 additions and 3 deletions
  1. +55
    -0
      README.md
  2. +15
    -3
      sdk/responses/response.go

+ 55
- 0
README.md View File

@@ -1,2 +1,57 @@
# gaore-common-sdk-go

### 目录架构
```
├── README.md
├── sdk
│   ├── auth `认证类`
│   ├── client.go `客户端主入口类`
│   ├── config.go
│   ├── requests `请求类`
│   ├── responses `响应类`
│   └── utils `工具类`
└── services
└── jedi
```

### 服务端认证调用事例

调用 `auth.UnSign` 方法,提供`*http.Request`请求实例,以及`signer.Signer` 签名器(签名器需要包括凭据)
即可完成整个验签过程

```go
package main

import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/credentials"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/signers"
)

func init() {
// 过滤器
beego.InsertFilter("/api/*", beego.BeforeRouter, func(context *context.Context) {
httpRequest := context.Request
err := auth.UnSign(httpRequest, signers.NewAccessKeySigner(&credentials.AccessKeyCredential{
AccessKeyId: "aaaaaa",
AccessKeySecret: "bbbbbb",
AccessKeyFrom: context.Input.Param("access_from"),
}))

if err != nil {
resp := response.NewJsonByDefaultFailed()
resp.Msg = err.Error()
resp.Code = 10086

var (
hasIndent = beego.BConfig.RunMode != beego.PROD
)
context.Output.Status = 500
context.Output.JSON(resp, hasIndent, false)
}
})
}
```

+ 15
- 3
sdk/responses/response.go View File

@@ -4,8 +4,10 @@ import (
"encoding/json"
"errors"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"io/ioutil"
"net/http"
"strings"
)

type AcsResponse interface {
@@ -86,12 +88,22 @@ func Unmarshal(response AcsResponse, httpResponse *http.Response, format string)
if err != nil {
return
}
if !response.IsSuccess() {
err = errors.New(fmt.Sprintf("%d %s", response.GetHttpStatus(), response.GetHttpContentString()))
if _, isCommonResponse := response.(CommonResponse); isCommonResponse {
return
}

if _, isCommonResponse := response.(CommonResponse); isCommonResponse {
if !response.IsSuccess() {
if contentType, ok := response.GetHttpHeaders()["Content-Type"]; ok {
for _, v := range contentType {
if strings.Contains(v, requests.Json) {
json.Unmarshal(response.GetHttpContentBytes(), response)
break
}
}
}

err = errors.New(fmt.Sprintf("%d %s", response.GetHttpStatus(), response.GetHttpContentString()))
return
}



Loading…
Cancel
Save