mirror of
https://github.com/pomerium/pomerium.git
synced 2025-06-24 13:38:17 +02:00
kubernetes apiserver integration (#1063)
* sessions: support bearer tokens in authorization * wip * remove dead code * refactor signed jwt code * use function * update per comments * fix test
This commit is contained in:
parent
5f6a67e6eb
commit
a70254ab76
10 changed files with 140 additions and 57 deletions
|
@ -54,9 +54,17 @@ func (as *Store) LoadSession(r *http.Request) (string, error) {
|
|||
// request, header key, and authentication type.
|
||||
func TokenFromHeader(r *http.Request, authHeader, authType string) string {
|
||||
bearer := r.Header.Get(authHeader)
|
||||
atSize := len(authType)
|
||||
if len(bearer) > atSize && strings.EqualFold(bearer[0:atSize], authType) {
|
||||
return bearer[atSize+1:]
|
||||
// Authorization: Pomerium <JWT>
|
||||
prefix := authType + " "
|
||||
if strings.HasPrefix(bearer, prefix) {
|
||||
return bearer[len(prefix):]
|
||||
}
|
||||
|
||||
// Authorization: Bearer Pomerium-<JWT>
|
||||
prefix = "Bearer " + authType + "-"
|
||||
if strings.HasPrefix(bearer, prefix) {
|
||||
return bearer[len(prefix):]
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue