Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
204dbb2
fix(connector): update authproxy and oauth to match CallbackConnector…
matzegebbe Feb 26, 2026
eaa45e2
fix(mysql): quote `groups` reserved word in query replacer (#4580)
backkem Feb 24, 2026
11d2eeb
Merge pull request #4604 from deckhouse/2.45.1-prepare-release
nabokihms Mar 3, 2026
806e1d1
Add new connector for Cloudfoundry
Apr 10, 2018
de4a36e
update cf connector to use 'authorization_endpoint' from /v2/info
Oct 4, 2018
a0570a2
Added support for CF resources pagination
daniellavoie Apr 4, 2019
dd69f96
cf: add org to groups claims
Nov 7, 2019
e926929
cf: add org guid to groups claims
Nov 18, 2019
0cdd860
add unit test and api call to `audited_spaces` and `managed_spaces`
Oct 7, 2019
13e3c24
append role to space guids
Nov 4, 2019
397b26b
add cf org:space:role group claim to token
Nov 25, 2019
e277651
fix lint errors
Jan 13, 2020
de399a5
run golangcli-lint
Mar 5, 2021
c4a6920
fix sanity check errors
Dec 1, 2021
c1eb2f3
rename connector;make types private;
Oct 5, 2022
46f7b89
add cloudfoundry to connector list in readme
Oct 5, 2022
17c0d4f
Switching to CloudFoundry v3 API
Kump3r Oct 2, 2024
9c9fdd9
Add missing endpoint
Kump3r Jan 3, 2025
ff45164
Refactor CloudFoundry API request handling to use updated response st…
Kump3r Jan 7, 2025
0d5987a
Use simple structures for the apiResult
Kump3r Jan 9, 2025
1d65ae4
Switching to CF API V3 endpoints
IvanChalukov Jan 9, 2025
d03f900
Addapt cloudfoundry_test.go acceptance tests for CF API v3
Kump3r Jan 10, 2025
cc648ec
update cf connector to use slog instead
taylorsilva Jan 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ Dex implements the following connectors:
| [Atlassian Crowd](https://dexidp.io/docs/connectors/atlassian-crowd/) | yes | yes | yes * | beta | preferred_username claim must be configured through config |
| [Gitea](https://dexidp.io/docs/connectors/gitea/) | yes | no | yes | beta | |
| [OpenStack Keystone](https://dexidp.io/docs/connectors/keystone/) | yes | yes | no | alpha | |
| [Cloud Foundry](https://dexidp.io/docs/connectors/cloudfoundry/) | no | yes | no | alpha | This connector is community maintained by [Concourse](https://github.com/concourse) |

Stable, beta, and alpha are defined as:

Expand Down
8 changes: 4 additions & 4 deletions connector/authproxy/authproxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,20 +83,20 @@ type callback struct {
}

// LoginURL returns the URL to redirect the user to login with.
func (m *callback) LoginURL(s connector.Scopes, callbackURL, state string) (string, error) {
func (m *callback) LoginURL(s connector.Scopes, callbackURL, state string) (string, []byte, error) {
u, err := url.Parse(callbackURL)
if err != nil {
return "", fmt.Errorf("failed to parse callbackURL %q: %v", callbackURL, err)
return "", nil, fmt.Errorf("failed to parse callbackURL %q: %v", callbackURL, err)
}
u.Path += m.pathSuffix
v := u.Query()
v.Set("state", state)
u.RawQuery = v.Encode()
return u.String(), nil
return u.String(), nil, nil
}

// HandleCallback parses the request and returns the user's identity
func (m *callback) HandleCallback(s connector.Scopes, r *http.Request) (connector.Identity, error) {
func (m *callback) HandleCallback(s connector.Scopes, _ []byte, r *http.Request) (connector.Identity, error) {
remoteUser := r.Header.Get(m.userHeader)
if remoteUser == "" {
return connector.Identity{}, fmt.Errorf("required HTTP header %s is not set", m.userHeader)
Expand Down
12 changes: 6 additions & 6 deletions connector/authproxy/authproxy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func TestUser(t *testing.T) {
"X-Remote-User": {testUsername},
}

ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, req)
ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, nil, req)
expectNil(t, err)

// If not specified, the userID and email should fall back to the remote user
Expand All @@ -62,7 +62,7 @@ func TestExtraHeaders(t *testing.T) {
"X-Remote-User-Email": {testEmail},
}

ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, req)
ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, nil, req)
expectNil(t, err)

expectEquals(t, ident.UserID, testUserID)
Expand All @@ -85,7 +85,7 @@ func TestSingleGroup(t *testing.T) {
"X-Remote-Group": {testGroup1},
}

ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, req)
ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, nil, req)
expectNil(t, err)

expectEquals(t, ident.UserID, testEmail)
Expand All @@ -106,7 +106,7 @@ func TestMultipleGroup(t *testing.T) {
"X-Remote-Group": {testGroup1 + ", " + testGroup2 + ", " + testGroup3 + ", " + testGroup4},
}

ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, req)
ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, nil, req)
expectNil(t, err)

expectEquals(t, ident.UserID, testEmail)
Expand All @@ -132,7 +132,7 @@ func TestMultipleGroupWithCustomSeparator(t *testing.T) {
"X-Remote-Group": {testGroup1 + ";" + testGroup2 + ";" + testGroup3 + ";" + testGroup4},
}

ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, req)
ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, nil, req)
expectNil(t, err)

expectEquals(t, ident.UserID, testEmail)
Expand All @@ -158,7 +158,7 @@ func TestStaticGroup(t *testing.T) {
"X-Remote-Group": {testGroup1 + ", " + testGroup2 + ", " + testGroup3 + ", " + testGroup4},
}

ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, req)
ident, err := callback.HandleCallback(connector.Scopes{OfflineAccess: true, Groups: true}, nil, req)
expectNil(t, err)

expectEquals(t, ident.UserID, testEmail)
Expand Down
Loading
Loading