Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
38
pkg/utils/auth_helper.go
Normal file
38
pkg/utils/auth_helper.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
c "fiskerinc.com/modules/common/context"
|
||||
)
|
||||
|
||||
// auth_helper gives tool to our authorization services so that future middleware components and actual endpoints will have access
|
||||
// to user data needed for specific granular control
|
||||
|
||||
func AUTHWriteProviderToRequest(provider string, r *http.Request) *http.Request {
|
||||
newCTX := AUTHWriteProviderToContext(provider, r.Context())
|
||||
|
||||
r = r.Clone(newCTX)
|
||||
return r
|
||||
}
|
||||
|
||||
func AUTHWriteProviderToContext(provider string, ctx context.Context) (newCTX context.Context) {
|
||||
newCTX = context.WithValue(ctx, c.ProviderKey, provider)
|
||||
return newCTX
|
||||
}
|
||||
|
||||
// If provider is not in context, will return an empty string
|
||||
func AUTHGetProviderFromRequest(r *http.Request) string {
|
||||
return AUTHGetProviderFromContext(r.Context())
|
||||
}
|
||||
|
||||
// If provider is not in context, will return an empty string
|
||||
func AUTHGetProviderFromContext(ctx context.Context) string {
|
||||
val, ok := ctx.Value(c.ProviderKey).(string)
|
||||
|
||||
if !ok {
|
||||
return ""
|
||||
}
|
||||
return val
|
||||
}
|
||||
Reference in New Issue
Block a user