@@ -85,28 +85,34 @@ func newClaimInjector(name string, source *options.ClaimSource) (valueInjector,
8585 return nil, fmt.Errorf("error loading basicAuthPassword: %v", err)
8686 }
8787 return newInjectorFunc(func(header http.Header, session *sessionsapi.SessionState) {
88− claim := session.GetClaim(source.Claim)
89− if claim == "" {
90− return
88+ claimValues := session.GetClaim(source.Claim)
89+ for _, claim := range claimValues {
90+ if claim == "" {
91+ continue
92+ }
93+ auth := claim + ":" + string(password)
94+ header.Add(name, "Basic "+base64.StdEncoding.EncodeToString([]byte(auth)))
9195 }
92− auth := claim + ":" + string(password)
93− header.Add(name, "Basic "+base64.StdEncoding.EncodeToString([]byte(auth)))
9496 }), nil
9597 case source.Prefix != "":
9698 return newInjectorFunc(func(header http.Header, session *sessionsapi.SessionState) {
97− claim := session.GetClaim(source.Claim)
98− if claim == "" {
99− return
99+ claimValues := session.GetClaim(source.Claim)
100+ for _, claim := range claimValues {
101+ if claim == "" {
102+ continue
103+ }
104+ header.Add(name, source.Prefix+claim)
100105 }
101− header.Add(name, source.Prefix+claim)
102106 }), nil
103107 default:
104108 return newInjectorFunc(func(header http.Header, session *sessionsapi.SessionState) {
105− claim := session.GetClaim(source.Claim)
106− if claim == "" {
107− return
109+ claimValues := session.GetClaim(source.Claim)
110+ for _, claim := range claimValues {
111+ if claim == "" {
112+ continue
113+ }
114+ header.Add(name, claim)
108115 }
109− header.Add(name, claim)
110116 }), nil
111117 }
112118}