Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
7 changes: 5 additions & 2 deletions src/tools/auth0/handlers/connections.ts
Original file line number Diff line number Diff line change
Expand Up @@ -448,12 +448,15 @@ export default class ConnectionsHandler extends DefaultAPIHandler {

getFormattedOptions(connection, clients) {
try {
const { idpinitiated } = connection.options;
return {
options: {
...connection.options,
idpinitiated: {
...connection.options.idpinitiated,
client_id: convertClientNameToId(connection.options.idpinitiated.client_id, clients),
...idpinitiated,
...(idpinitiated.client_id && {
client_id: convertClientNameToId(idpinitiated.client_id, clients),
}),
},
},
};
Expand Down
7 changes: 5 additions & 2 deletions src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -334,12 +334,15 @@ export const decodeBase64ToCertString = (base64Cert: string) => {
// Format connection options by converting client IDs to client names for SAML connections
export const getFormattedOptions = (connection, clients) => {
try {
const { idpinitiated } = connection.options;
return {
options: {
...connection.options,
idpinitiated: {
...connection.options.idpinitiated,
client_id: convertClientIdToName(connection.options.idpinitiated.client_id, clients),
...idpinitiated,
...(idpinitiated.client_id && {
client_id: convertClientIdToName(idpinitiated.client_id, clients),
}),
},
},
};
Expand Down
22 changes: 22 additions & 0 deletions test/context/yaml/connections.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,17 @@ describe('#YAML context connections', () => {
},
},
},
{
name: 'someSamlConnectionIdpInitiatedDisabled',
strategy: 'samlp',
enabled_clients: [],
options: {
passwordPolicy: 'testPolicy',
idpinitiated: {
enabled: false,
},
},
},
];

const target = [
Expand Down Expand Up @@ -238,6 +249,17 @@ describe('#YAML context connections', () => {
},
},
},
{
name: 'someSamlConnectionIdpInitiatedDisabled',
strategy: 'samlp',
enabled_clients: [],
options: {
passwordPolicy: 'testPolicy',
idpinitiated: {
enabled: false,
},
},
},
];

const clients = [
Expand Down
16 changes: 16 additions & 0 deletions test/tools/auth0/handlers/connections.tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -1476,6 +1476,22 @@ describe('#connections handler', () => {
await stageFn.apply(handler, [{ connections: data }]);
});

it('should not add a client_id to idpinitiated when login is disabled', () => {
const handler = new connections.default({ client: pageClient({ pool }), config });
const connection = {
options: {
passwordPolicy: 'testPolicy',
idpinitiated: { enabled: false },
},
};

const formatted = handler.getFormattedOptions(connection, [
{ name: 'client1', client_id: 'client1-id' },
]);

expect(formatted.options.idpinitiated).to.deep.equal({ enabled: false });
});

// If client is excluded and in the existing connection this client is enabled, it should keep enabled
// If client is excluded and in the existing connection this client is disabled, it should keep disabled
it('should handle excluded clients properly', async () => {
Expand Down