aboutsummaryrefslogtreecommitdiff
path: root/go/security/jwt.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2016-06-02 18:09:14 -0700
committerChris Lu <chris.lu@gmail.com>2016-06-02 18:09:14 -0700
commit5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44 (patch)
tree2e4dd2ad0a618ab2b7cdebcdb9c503526c31e2e8 /go/security/jwt.go
parentcaeffa3998adc060fa66c4cd77af971ff2d26c57 (diff)
downloadseaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.tar.xz
seaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.zip
directory structure change to work with glide
glide has its own requirements. My previous workaround caused me some code checkin errors. Need to fix this.
Diffstat (limited to 'go/security/jwt.go')
-rw-r--r--go/security/jwt.go72
1 files changed, 0 insertions, 72 deletions
diff --git a/go/security/jwt.go b/go/security/jwt.go
deleted file mode 100644
index a29a94b3c..000000000
--- a/go/security/jwt.go
+++ /dev/null
@@ -1,72 +0,0 @@
-package security
-
-import (
- "net/http"
- "strings"
-
- "time"
-
- "github.com/chrislusf/seaweedfs/go/glog"
- jwt "github.com/dgrijalva/jwt-go"
-)
-
-type EncodedJwt string
-type Secret string
-
-func GenJwt(secret Secret, fileId string) EncodedJwt {
- if secret == "" {
- return ""
- }
-
- t := jwt.New(jwt.GetSigningMethod("HS256"))
- t.Claims["exp"] = time.Now().Unix() + 10
- t.Claims["sub"] = fileId
- encoded, e := t.SignedString(secret)
- if e != nil {
- glog.V(0).Infof("Failed to sign claims: %v", t.Claims)
- return ""
- }
- return EncodedJwt(encoded)
-}
-
-func GetJwt(r *http.Request) EncodedJwt {
-
- // Get token from query params
- tokenStr := r.URL.Query().Get("jwt")
-
- // Get token from authorization header
- if tokenStr == "" {
- bearer := r.Header.Get("Authorization")
- if len(bearer) > 7 && strings.ToUpper(bearer[0:6]) == "BEARER" {
- tokenStr = bearer[7:]
- }
- }
-
- // Get token from cookie
- if tokenStr == "" {
- cookie, err := r.Cookie("jwt")
- if err == nil {
- tokenStr = cookie.Value
- }
- }
-
- return EncodedJwt(tokenStr)
-}
-
-func EncodeJwt(secret Secret, claims map[string]interface{}) (EncodedJwt, error) {
- if secret == "" {
- return "", nil
- }
-
- t := jwt.New(jwt.GetSigningMethod("HS256"))
- t.Claims = claims
- encoded, e := t.SignedString(secret)
- return EncodedJwt(encoded), e
-}
-
-func DecodeJwt(secret Secret, tokenString EncodedJwt) (token *jwt.Token, err error) {
- // check exp, nbf
- return jwt.Parse(string(tokenString), func(token *jwt.Token) (interface{}, error) {
- return secret, nil
- })
-}