All pubic brokers are shown during authentication rather than only those associated with the current organization
Closes #31246 Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
This commit is contained in:
parent
1df60461a9
commit
c33585a5f4
2 changed files with 35 additions and 0 deletions
|
@ -74,6 +74,12 @@ public class OrganizationAwareIdentityProviderBean extends IdentityProviderBean
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OrganizationModel organization = (OrganizationModel) session.getAttribute(OrganizationModel.class.getName());
|
||||||
|
|
||||||
|
if (organization != null && !organization.getId().equals(model.getOrganizationId())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return Boolean.parseBoolean(model.getConfig().getOrDefault(OrganizationModel.BROKER_PUBLIC, Boolean.FALSE.toString()));
|
return Boolean.parseBoolean(model.getConfig().getOrDefault(OrganizationModel.BROKER_PUBLIC, Boolean.FALSE.toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -432,6 +432,35 @@ public abstract class AbstractBrokerSelfRegistrationTest extends AbstractOrganiz
|
||||||
Assert.assertTrue(loginPage.isSocialButtonPresent(bc.getIDPAlias()));
|
Assert.assertTrue(loginPage.isSocialButtonPresent(bc.getIDPAlias()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testOnlyShowBrokersAssociatedWithResolvedOrganization() {
|
||||||
|
String org0Name = "org-0";
|
||||||
|
OrganizationResource org0 = testRealm().organizations().get(createOrganization(org0Name).getId());
|
||||||
|
IdentityProviderRepresentation org0Broker = org0.identityProviders().getIdentityProviders().get(0);
|
||||||
|
org0Broker.getConfig().remove(OrganizationModel.ORGANIZATION_DOMAIN_ATTRIBUTE);
|
||||||
|
org0Broker.getConfig().put(OrganizationModel.BROKER_PUBLIC, Boolean.TRUE.toString());
|
||||||
|
testRealm().identityProviders().get(org0Broker.getAlias()).update(org0Broker);
|
||||||
|
String org1Name = "org-1";
|
||||||
|
OrganizationResource org1 = testRealm().organizations().get(createOrganization(org1Name).getId());
|
||||||
|
IdentityProviderRepresentation org1Broker = org1.identityProviders().getIdentityProviders().get(0);
|
||||||
|
org1Broker.getConfig().remove(OrganizationModel.ORGANIZATION_DOMAIN_ATTRIBUTE);
|
||||||
|
org1Broker.getConfig().put(OrganizationModel.BROKER_PUBLIC, Boolean.TRUE.toString());
|
||||||
|
testRealm().identityProviders().get(org1Broker.getAlias()).update(org1Broker);
|
||||||
|
|
||||||
|
oauth.clientId("broker-app");
|
||||||
|
loginPage.open(bc.consumerRealmName());
|
||||||
|
loginPage.loginUsername("user@org-0.org");
|
||||||
|
Assert.assertTrue(driver.getPageSource().contains("Your email domain matches the " + org0Name + " organization but you don't have an account yet."));
|
||||||
|
Assert.assertTrue(loginPage.isSocialButtonPresent(org0Broker.getAlias()));
|
||||||
|
Assert.assertFalse(loginPage.isSocialButtonPresent(org1Broker.getAlias()));
|
||||||
|
|
||||||
|
loginPage.open(bc.consumerRealmName());
|
||||||
|
loginPage.loginUsername("user@org-1.org");
|
||||||
|
Assert.assertTrue(driver.getPageSource().contains("Your email domain matches the " + org1Name + " organization but you don't have an account yet."));
|
||||||
|
Assert.assertTrue(loginPage.isSocialButtonPresent(org1Broker.getAlias()));
|
||||||
|
Assert.assertFalse(loginPage.isSocialButtonPresent(org0Broker.getAlias()));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testLoginUsingBrokerWithoutDomain() {
|
public void testLoginUsingBrokerWithoutDomain() {
|
||||||
OrganizationResource organization = testRealm().organizations().get(createOrganization().getId());
|
OrganizationResource organization = testRealm().organizations().get(createOrganization().getId());
|
||||||
|
|
Loading…
Reference in a new issue