diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f635d0b6..3abc11de 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,6 +4,7 @@ repos: hooks: - id: detect-secrets args: ['--baseline', '.secrets.baseline'] + exclude: vendor/* - repo: https://github.com/pre-commit/pre-commit-hooks rev: v2.5.0 hooks: diff --git a/.secrets.baseline b/.secrets.baseline new file mode 100644 index 00000000..87f09a0f --- /dev/null +++ b/.secrets.baseline @@ -0,0 +1,66 @@ +{ + "exclude": { + "files": "vendor/*", + "lines": null + }, + "generated_at": "2020-11-12T20:38:16Z", + "plugins_used": [ + { + "name": "AWSKeyDetector" + }, + { + "name": "ArtifactoryDetector" + }, + { + "base64_limit": 4.5, + "name": "Base64HighEntropyString" + }, + { + "name": "BasicAuthDetector" + }, + { + "name": "CloudantDetector" + }, + { + "hex_limit": 3, + "name": "HexHighEntropyString" + }, + { + "name": "IbmCloudIamDetector" + }, + { + "name": "IbmCosHmacDetector" + }, + { + "name": "JwtTokenDetector" + }, + { + "keyword_exclude": null, + "name": "KeywordDetector" + }, + { + "name": "MailchimpDetector" + }, + { + "name": "PrivateKeyDetector" + }, + { + "name": "SlackDetector" + }, + { + "name": "SoftlayerDetector" + }, + { + "name": "StripeDetector" + }, + { + "name": "TwilioKeyDetector" + } + ], + "results": {}, + "version": "0.13.1", + "word_list": { + "file": null, + "hash": null + } +} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d57f8128..00000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: go - -go: - - "1.12" - -# Restrict to cloning only 1 commit. -git: - depth: 1 - -sudo: false - -script: - - go test -v ./... diff --git a/README.md b/README.md index 0c6f9605..a57aad51 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ hit all the Mariner API endpoints. 2. Fetch token using API key ``` -echo Authorization: $(curl -d '{"api_key": "", "key_id": ""}' -X POST -H "Content-Type: application/json" https://.planx-pla.net/user/credentials/api/access_token | jq .access_token | sed 's/"//g') > auth +echo Authorization: bearer $(curl -d '{"api_key": "", "key_id": ""}' -X POST -H "Content-Type: application/json" https://.planx-pla.net/user/credentials/api/access_token | jq .access_token | sed 's/"//g') > auth ``` 3. POST the workflow request diff --git a/mariner/server.go b/mariner/server.go index 2d05e256..f90c05a5 100644 --- a/mariner/server.go +++ b/mariner/server.go @@ -452,12 +452,14 @@ func (server *Server) handleAuth(next http.Handler) http.Handler { // polish this func authHTTPRequest(r *http.Request) (*AuthHTTPRequest, error) { - token := r.Header.Get(authHeader) - if token == "" { + authHeader := r.Header.Get(authHeader) + if authHeader == "" { return nil, fmt.Errorf("no token in Authorization header") } + userJWT := strings.TrimPrefix(authHeader, "Bearer ") + userJWT = strings.TrimPrefix(userJWT, "bearer ") user := &UserJSON{ - Token: token, + Token: userJWT, } authRequest := &AuthRequest{ Resource: "/mariner", diff --git a/mariner/token.go b/mariner/token.go index fa264ac1..3294103a 100644 --- a/mariner/token.go +++ b/mariner/token.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "net/http" + "strings" ) type TokenInfo struct { @@ -11,7 +12,13 @@ type TokenInfo struct { } func (server *Server) userID(r *http.Request) (userID string) { - info, err := server.decodeToken(r.Header.Get(authHeader)) + authHeader := r.Header.Get(authHeader) + if authHeader == "" { + fmt.Println("no token in Authorization header") + } + userJWT := strings.TrimPrefix(authHeader, "Bearer ") + userJWT = strings.TrimPrefix(userJWT, "bearer ") + info, err := server.decodeToken(userJWT) if err != nil { // log error fmt.Println("error decoding token: ", err)