use of org.cloudfoundry.identity.uaa.mfa.MfaProviderProvisioning in project uaa by cloudfoundry.
the class TotpMfaEndpointTest method setup.
@Before
public void setup() {
userId = new RandomValueStringGenerator(5).generate();
userGoogleMfaCredentialsProvisioning = mock(UserGoogleMfaCredentialsProvisioning.class);
mfaProviderProvisioning = mock(MfaProviderProvisioning.class);
uaaAuthentication = mock(UaaAuthentication.class);
mfaProvider = new MfaProvider();
mfaProvider.setName("provider-name");
mfaProvider.setId("provider_id1");
mfaProvider.setConfig(new GoogleMfaProviderConfig());
mfaProvider.setType(MfaProvider.MfaProviderType.GOOGLE_AUTHENTICATOR);
otherMfaProvider = new MfaProvider();
otherMfaProvider.setName("other-provider-name");
otherMfaProvider.setId("provider_id2");
otherMfaProvider.setConfig(new GoogleMfaProviderConfig());
otherMfaProvider.setType(MfaProvider.MfaProviderType.GOOGLE_AUTHENTICATOR);
mockSuccessHandler = mock(SavedRequestAwareAuthenticationSuccessHandler.class);
SecurityContextHolder.getContext().setAuthentication(uaaAuthentication);
publisher = mock(ApplicationEventPublisher.class);
eventCaptor = ArgumentCaptor.forClass(ApplicationEvent.class);
doNothing().when(publisher).publishEvent(eventCaptor.capture());
userDb = mock(UaaUserDatabase.class);
mockMfaPolicy = mock(CommonLoginPolicy.class);
when(mockMfaPolicy.isAllowed(anyString())).thenReturn(new LoginPolicy.Result(true, 0));
endpoint = new TotpMfaEndpoint(userGoogleMfaCredentialsProvisioning, mfaProviderProvisioning, "/login/mfa/completed", userDb, mockMfaPolicy);
endpoint.setApplicationEventPublisher(publisher);
}
use of org.cloudfoundry.identity.uaa.mfa.MfaProviderProvisioning in project uaa by cloudfoundry.
the class MockMvcUtils method createMfaProvider.
public static MfaProvider createMfaProvider(ApplicationContext context, IdentityZone zone) {
String zoneId = zone.getId();
MfaProvider provider = new MfaProvider();
provider.setName(new RandomValueStringGenerator(5).generate().toLowerCase());
provider.setType(MfaProvider.MfaProviderType.GOOGLE_AUTHENTICATOR);
provider.setIdentityZoneId(zoneId);
provider.setConfig(new GoogleMfaProviderConfig());
provider.getConfig().setIssuer(zone.getName());
MfaProviderProvisioning provisioning = context.getBean(MfaProviderProvisioning.class);
try {
return provisioning.create(provider, zoneId);
} catch (MfaAlreadyExistsException x) {
return provisioning.update(provider, zoneId);
}
}
use of org.cloudfoundry.identity.uaa.mfa.MfaProviderProvisioning in project uaa by cloudfoundry.
the class IdentityZoneConfigurationBootstrapTests method configureProvisioning.
@BeforeEach
public void configureProvisioning(@Autowired JdbcTemplate jdbcTemplate) {
TestUtils.cleanAndSeedDb(jdbcTemplate);
provisioning = new JdbcIdentityZoneProvisioning(jdbcTemplate);
bootstrap = new IdentityZoneConfigurationBootstrap(provisioning);
GeneralMfaProviderValidator mfaProviderValidator = new GeneralMfaProviderValidator();
MfaProviderProvisioning mfaProvisoning = new JdbcMfaProviderProvisioning(jdbcTemplate, mfaProviderValidator);
MfaProvider<GoogleMfaProviderConfig> provider = new MfaProvider<>();
provider.setName("testProvider");
provider.setType(MfaProvider.MfaProviderType.GOOGLE_AUTHENTICATOR);
provider.setConfig(new GoogleMfaProviderConfig());
provider.setIdentityZoneId("uaa");
mfaProvisoning.create(provider, "uaa");
MfaConfigValidator mfaConfigValidator = new MfaConfigValidator(mfaProvisoning);
GeneralIdentityZoneConfigurationValidator configValidator = new GeneralIdentityZoneConfigurationValidator(mfaConfigValidator);
validator = new GeneralIdentityZoneValidator(configValidator);
bootstrap.setValidator(validator);
// For the SamlTestUtils keys we are using.
Security.addProvider(new BouncyCastleProvider());
}
use of org.cloudfoundry.identity.uaa.mfa.MfaProviderProvisioning in project uaa by cloudfoundry.
the class MfaProviderEndpointsMockMvcTests method testDeleteZoneAlsoDeletesMfaProviderInThatZone.
@Test
void testDeleteZoneAlsoDeletesMfaProviderInThatZone() throws Exception {
IdentityZone identityZone = MockMvcUtils.createZoneUsingWebRequest(mockMvc, adminToken);
MfaProvider<GoogleMfaProviderConfig> mfaProvider = constructGoogleMfaProvider();
MockHttpServletResponse response = mockMvc.perform(post("/mfa-providers").header("Authorization", "Bearer " + adminToken).header("X-Identity-Zone-Id", identityZone.getId()).contentType(APPLICATION_JSON).content(JsonUtils.writeValueAsString(mfaProvider))).andReturn().getResponse();
mfaProvider = JsonUtils.readValue(response.getContentAsString(), MfaProvider.class);
MfaProviderProvisioning providerProvisioning = webApplicationContext.getBean(JdbcMfaProviderProvisioning.class);
providerProvisioning.retrieve(mfaProvider.getId(), identityZone.getId());
MockMvcUtils.deleteIdentityZone(identityZone.getId(), mockMvc);
final String mfaProviderId = mfaProvider.getId();
assertThrows(EmptyResultDataAccessException.class, () -> providerProvisioning.retrieve(mfaProviderId, identityZone.getId()));
}
Aggregations