Add header Injector

This commit is contained in:
Joel Speed
2020-10-07 18:24:57 +01:00
parent eec7565c52
commit fc2ff19a19
7 changed files with 725 additions and 0 deletions
+29
View File
@@ -8,6 +8,7 @@ import (
"io"
"io/ioutil"
"reflect"
"strings"
"time"
"unicode/utf8"
@@ -69,6 +70,34 @@ func (s *SessionState) String() string {
return o + "}"
}
func (s *SessionState) GetClaim(claim string) string {
if s == nil {
return ""
}
switch claim {
case "access_token":
return s.AccessToken
case "id_token":
return s.IDToken
case "created_at":
return s.CreatedAt.String()
case "expires_on":
return s.ExpiresOn.String()
case "refresh_token":
return s.RefreshToken
case "email":
return s.Email
case "user":
return s.User
case "groups":
return strings.Join(s.Groups, ",")
case "preferred_username":
return s.PreferredUsername
default:
return ""
}
}
// EncodeSessionState returns an encrypted, lz4 compressed, MessagePack encoded session
func (s *SessionState) EncodeSessionState(c encryption.Cipher, compress bool) ([]byte, error) {
packed, err := msgpack.Marshal(s)