fix callback_handler_test.go
Co-authored-by: Benjamin A. Petersen <ben@benjaminapetersen.me>
This commit is contained in:
parent
b71e5964aa
commit
048f05d39c
@ -90,28 +90,34 @@ var (
|
|||||||
happyDownstreamRequestParamsForDynamicClient = happyDownstreamRequestParamsQueryForDynamicClient.Encode()
|
happyDownstreamRequestParamsForDynamicClient = happyDownstreamRequestParamsQueryForDynamicClient.Encode()
|
||||||
|
|
||||||
happyDownstreamCustomSessionData = &psession.CustomSessionData{
|
happyDownstreamCustomSessionData = &psession.CustomSessionData{
|
||||||
Username: oidcUpstreamUsername,
|
Username: oidcUpstreamUsername,
|
||||||
ProviderUID: happyUpstreamIDPResourceUID,
|
UpstreamUsername: oidcUpstreamUsername,
|
||||||
ProviderName: happyUpstreamIDPName,
|
UpstreamGroups: oidcUpstreamGroupMembership,
|
||||||
ProviderType: psession.ProviderTypeOIDC,
|
ProviderUID: happyUpstreamIDPResourceUID,
|
||||||
|
ProviderName: happyUpstreamIDPName,
|
||||||
|
ProviderType: psession.ProviderTypeOIDC,
|
||||||
OIDC: &psession.OIDCSessionData{
|
OIDC: &psession.OIDCSessionData{
|
||||||
UpstreamRefreshToken: oidcUpstreamRefreshToken,
|
UpstreamRefreshToken: oidcUpstreamRefreshToken,
|
||||||
UpstreamIssuer: oidcUpstreamIssuer,
|
UpstreamIssuer: oidcUpstreamIssuer,
|
||||||
UpstreamSubject: oidcUpstreamSubject,
|
UpstreamSubject: oidcUpstreamSubject,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
happyDownstreamCustomSessionDataWithUsername = func(wantUsername string) *psession.CustomSessionData {
|
happyDownstreamCustomSessionDataWithUsernameAndGroups = func(wantUsername string, wantGroups []string) *psession.CustomSessionData {
|
||||||
copyOfCustomSession := *happyDownstreamCustomSessionData
|
copyOfCustomSession := *happyDownstreamCustomSessionData
|
||||||
copyOfOIDC := *(happyDownstreamCustomSessionData.OIDC)
|
copyOfOIDC := *(happyDownstreamCustomSessionData.OIDC)
|
||||||
copyOfCustomSession.OIDC = ©OfOIDC
|
copyOfCustomSession.OIDC = ©OfOIDC
|
||||||
copyOfCustomSession.Username = wantUsername
|
copyOfCustomSession.Username = wantUsername
|
||||||
|
copyOfCustomSession.UpstreamUsername = wantUsername
|
||||||
|
copyOfCustomSession.UpstreamGroups = wantGroups
|
||||||
return ©OfCustomSession
|
return ©OfCustomSession
|
||||||
}
|
}
|
||||||
happyDownstreamAccessTokenCustomSessionData = &psession.CustomSessionData{
|
happyDownstreamAccessTokenCustomSessionData = &psession.CustomSessionData{
|
||||||
Username: oidcUpstreamUsername,
|
Username: oidcUpstreamUsername,
|
||||||
ProviderUID: happyUpstreamIDPResourceUID,
|
UpstreamUsername: oidcUpstreamUsername,
|
||||||
ProviderName: happyUpstreamIDPName,
|
UpstreamGroups: oidcUpstreamGroupMembership,
|
||||||
ProviderType: psession.ProviderTypeOIDC,
|
ProviderUID: happyUpstreamIDPResourceUID,
|
||||||
|
ProviderName: happyUpstreamIDPName,
|
||||||
|
ProviderType: psession.ProviderTypeOIDC,
|
||||||
OIDC: &psession.OIDCSessionData{
|
OIDC: &psession.OIDCSessionData{
|
||||||
UpstreamAccessToken: oidcUpstreamAccessToken,
|
UpstreamAccessToken: oidcUpstreamAccessToken,
|
||||||
UpstreamIssuer: oidcUpstreamIssuer,
|
UpstreamIssuer: oidcUpstreamIssuer,
|
||||||
@ -395,11 +401,13 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: &psession.CustomSessionData{
|
wantDownstreamCustomSessionData: &psession.CustomSessionData{
|
||||||
Username: oidcUpstreamUsername,
|
Username: oidcUpstreamUsername,
|
||||||
ProviderUID: happyUpstreamIDPResourceUID,
|
UpstreamUsername: oidcUpstreamUsername,
|
||||||
ProviderName: happyUpstreamIDPName,
|
UpstreamGroups: oidcUpstreamGroupMembership,
|
||||||
ProviderType: psession.ProviderTypeOIDC,
|
ProviderUID: happyUpstreamIDPResourceUID,
|
||||||
Warnings: []string{"Access token from identity provider has lifetime of less than 3 hours. Expect frequent prompts to log in."},
|
ProviderName: happyUpstreamIDPName,
|
||||||
|
ProviderType: psession.ProviderTypeOIDC,
|
||||||
|
Warnings: []string{"Access token from identity provider has lifetime of less than 3 hours. Expect frequent prompts to log in."},
|
||||||
OIDC: &psession.OIDCSessionData{
|
OIDC: &psession.OIDCSessionData{
|
||||||
UpstreamAccessToken: oidcUpstreamAccessToken,
|
UpstreamAccessToken: oidcUpstreamAccessToken,
|
||||||
UpstreamIssuer: oidcUpstreamIssuer,
|
UpstreamIssuer: oidcUpstreamIssuer,
|
||||||
@ -431,7 +439,7 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamClientID: downstreamPinnipedClientID,
|
wantDownstreamClientID: downstreamPinnipedClientID,
|
||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsername(oidcUpstreamIssuer + "?sub=" + oidcUpstreamSubjectQueryEscaped),
|
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsernameAndGroups(oidcUpstreamIssuer+"?sub="+oidcUpstreamSubjectQueryEscaped, nil),
|
||||||
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
||||||
performedByUpstreamName: happyUpstreamIDPName,
|
performedByUpstreamName: happyUpstreamIDPName,
|
||||||
args: happyExchangeAndValidateTokensArgs,
|
args: happyExchangeAndValidateTokensArgs,
|
||||||
@ -457,7 +465,7 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamClientID: downstreamPinnipedClientID,
|
wantDownstreamClientID: downstreamPinnipedClientID,
|
||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsername("joe@whitehouse.gov"),
|
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsernameAndGroups("joe@whitehouse.gov", oidcUpstreamGroupMembership),
|
||||||
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
||||||
performedByUpstreamName: happyUpstreamIDPName,
|
performedByUpstreamName: happyUpstreamIDPName,
|
||||||
args: happyExchangeAndValidateTokensArgs,
|
args: happyExchangeAndValidateTokensArgs,
|
||||||
@ -485,7 +493,7 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamClientID: downstreamPinnipedClientID,
|
wantDownstreamClientID: downstreamPinnipedClientID,
|
||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsername("joe@whitehouse.gov"),
|
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsernameAndGroups("joe@whitehouse.gov", oidcUpstreamGroupMembership),
|
||||||
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
||||||
performedByUpstreamName: happyUpstreamIDPName,
|
performedByUpstreamName: happyUpstreamIDPName,
|
||||||
args: happyExchangeAndValidateTokensArgs,
|
args: happyExchangeAndValidateTokensArgs,
|
||||||
@ -514,7 +522,7 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamClientID: downstreamPinnipedClientID,
|
wantDownstreamClientID: downstreamPinnipedClientID,
|
||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsername("joe"),
|
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsernameAndGroups("joe", oidcUpstreamGroupMembership),
|
||||||
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
||||||
performedByUpstreamName: happyUpstreamIDPName,
|
performedByUpstreamName: happyUpstreamIDPName,
|
||||||
args: happyExchangeAndValidateTokensArgs,
|
args: happyExchangeAndValidateTokensArgs,
|
||||||
@ -645,7 +653,7 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamClientID: downstreamPinnipedClientID,
|
wantDownstreamClientID: downstreamPinnipedClientID,
|
||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsername(oidcUpstreamSubject),
|
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsernameAndGroups(oidcUpstreamSubject, oidcUpstreamGroupMembership),
|
||||||
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
||||||
performedByUpstreamName: happyUpstreamIDPName,
|
performedByUpstreamName: happyUpstreamIDPName,
|
||||||
args: happyExchangeAndValidateTokensArgs,
|
args: happyExchangeAndValidateTokensArgs,
|
||||||
@ -671,7 +679,7 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamClientID: downstreamPinnipedClientID,
|
wantDownstreamClientID: downstreamPinnipedClientID,
|
||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: happyDownstreamCustomSessionData,
|
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsernameAndGroups(oidcUpstreamUsername, []string{"notAnArrayGroup1 notAnArrayGroup2"}),
|
||||||
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
||||||
performedByUpstreamName: happyUpstreamIDPName,
|
performedByUpstreamName: happyUpstreamIDPName,
|
||||||
args: happyExchangeAndValidateTokensArgs,
|
args: happyExchangeAndValidateTokensArgs,
|
||||||
@ -697,7 +705,7 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamClientID: downstreamPinnipedClientID,
|
wantDownstreamClientID: downstreamPinnipedClientID,
|
||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: happyDownstreamCustomSessionData,
|
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsernameAndGroups(oidcUpstreamUsername, []string{"group1", "group2"}),
|
||||||
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
||||||
performedByUpstreamName: happyUpstreamIDPName,
|
performedByUpstreamName: happyUpstreamIDPName,
|
||||||
args: happyExchangeAndValidateTokensArgs,
|
args: happyExchangeAndValidateTokensArgs,
|
||||||
@ -1252,7 +1260,7 @@ func TestCallbackEndpoint(t *testing.T) {
|
|||||||
wantDownstreamClientID: downstreamPinnipedClientID,
|
wantDownstreamClientID: downstreamPinnipedClientID,
|
||||||
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
wantDownstreamPKCEChallenge: downstreamPKCEChallenge,
|
||||||
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
wantDownstreamPKCEChallengeMethod: downstreamPKCEChallengeMethod,
|
||||||
wantDownstreamCustomSessionData: happyDownstreamCustomSessionData,
|
wantDownstreamCustomSessionData: happyDownstreamCustomSessionDataWithUsernameAndGroups(oidcUpstreamUsername, nil),
|
||||||
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
wantAuthcodeExchangeCall: &expectedAuthcodeExchange{
|
||||||
performedByUpstreamName: happyUpstreamIDPName,
|
performedByUpstreamName: happyUpstreamIDPName,
|
||||||
args: happyExchangeAndValidateTokensArgs,
|
args: happyExchangeAndValidateTokensArgs,
|
||||||
|
Loading…
Reference in New Issue
Block a user