Skip to content
Snippets Groups Projects
Commit 184ff320 authored by Bolke de Bruin's avatar Bolke de Bruin
Browse files

Fix checking host from list

parent 19e9e326
Branches
Tags
No related merge requests found
...@@ -35,6 +35,8 @@ type SessionInfo struct { ...@@ -35,6 +35,8 @@ type SessionInfo struct {
RemoteServer string RemoteServer string
// The obtained client ip address // The obtained client ip address
ClientIp string ClientIp string
// User
UserName string
} }
// readMessage parses and defragments a packet from a Transport. It returns // readMessage parses and defragments a packet from a Transport. It returns
......
...@@ -22,10 +22,13 @@ func CheckHost(ctx context.Context, host string) (bool, error) { ...@@ -22,10 +22,13 @@ func CheckHost(ctx context.Context, host string) (bool, error) {
return false, errors.New("cannot verify host in 'signed' mode as token data is missing") return false, errors.New("cannot verify host in 'signed' mode as token data is missing")
case "roundrobin", "unsigned": case "roundrobin", "unsigned":
log.Printf("Checking host") log.Printf("Checking host")
username := ctx.Value("preferred_username").(string) s := getSessionInfo(ctx)
if s == nil {
return false, errors.New("no valid session info found in context")
}
for _, h := range Hosts { for _, h := range Hosts {
if username != "" { if s.UserName != "" {
h = strings.Replace(h, "{{ preferred_username }}", username, 1) h = strings.Replace(h, "{{ preferred_username }}", s.UserName, 1)
} }
if h == host { if h == host {
return true, nil return true, nil
......
...@@ -95,19 +95,18 @@ func VerifyPAAToken(ctx context.Context, tokenString string) (bool, error) { ...@@ -95,19 +95,18 @@ func VerifyPAAToken(ctx context.Context, tokenString string) (bool, error) {
} }
// validate the access token // validate the access token
if custom.AccessToken != "EMPTY" {
tokenSource := Oauth2Config.TokenSource(ctx, &oauth2.Token{AccessToken: custom.AccessToken}) tokenSource := Oauth2Config.TokenSource(ctx, &oauth2.Token{AccessToken: custom.AccessToken})
_, err = OIDCProvider.UserInfo(ctx, tokenSource) user, err := OIDCProvider.UserInfo(ctx, tokenSource)
if err != nil { if err != nil {
log.Printf("Cannot get user info for access token: %s", err) log.Printf("Cannot get user info for access token: %s", err)
return false, err return false, err
} }
}
s := getSessionInfo(ctx) s := getSessionInfo(ctx)
s.RemoteServer = custom.RemoteServer s.RemoteServer = custom.RemoteServer
s.ClientIp = custom.ClientIP s.ClientIp = custom.ClientIP
s.UserName = user.Subject
return true, nil return true, nil
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment