@@ -159,17 +159,27 @@ func randString(size int) (string, error) {
159
159
160
160
func (s * Service ) GetClientConfigFromStartRequest (r * http.Request ) (* ClientConfig , error ) {
161
161
issuerParam := r .URL .Query ().Get ("issuer" )
162
- if issuerParam == "" {
163
- return nil , fmt .Errorf ("missing issuer parameter" )
162
+ idParam := r .URL .Query ().Get ("id" )
163
+ if issuerParam == "" && idParam == "" {
164
+ return nil , fmt .Errorf ("missing parameters" )
164
165
}
165
166
166
- for _ , value := range s .configsById {
167
- if value .Issuer == issuerParam {
168
- return value , nil
167
+ if idParam != "" {
168
+ config := s .configsById [idParam ]
169
+ if config != nil {
170
+ return config , nil
171
+ }
172
+ return nil , fmt .Errorf ("failed to find OIDC config by ID" )
173
+ }
174
+ if issuerParam != "" {
175
+ for _ , value := range s .configsById {
176
+ if value .Issuer == issuerParam {
177
+ return value , nil
178
+ }
169
179
}
170
180
}
171
181
172
- return nil , fmt .Errorf ("failed to find OIDC config for start request " )
182
+ return nil , fmt .Errorf ("failed to find OIDC config" )
173
183
}
174
184
175
185
func (s * Service ) GetClientConfigFromCallbackRequest (r * http.Request ) (* ClientConfig , error ) {
@@ -187,7 +197,7 @@ func (s *Service) GetClientConfigFromCallbackRequest(r *http.Request) (*ClientCo
187
197
return config , nil
188
198
}
189
199
190
- return nil , fmt .Errorf ("failed to find OIDC config for request " )
200
+ return nil , fmt .Errorf ("failed to find OIDC config on callback " )
191
201
}
192
202
193
203
type AuthenticateParams struct {
0 commit comments