@Test public void verifySaveMethodWithExistingServiceNoAttribute() { final RegexRegisteredService r = new RegexRegisteredService(); r.setName("testSaveMethodWithExistingServiceNoAttribute"); r.setServiceId("testId"); r.setTheme("theme"); r.setDescription("description"); this.dao.save(r); r.setTheme("mytheme"); this.dao.save(r); final RegisteredService r3 = this.dao.findServiceById(r.getId()); assertEquals(r, r3); }
@Test public void verifyServiceRemovals() throws Exception { final List<RegisteredService> list = new ArrayList<>(5); IntStream.range(1, 5) .forEach( i -> { final RegexRegisteredService r = new RegexRegisteredService(); r.setServiceId("^https://.+"); r.setName("testServiceType"); r.setTheme("testtheme"); r.setEvaluationOrder(1000); r.setId(i * 100); list.add(this.dao.save(r)); }); list.stream() .forEach( r2 -> { try { Thread.sleep(500); this.dao.delete(r2); Thread.sleep(2000); } catch (final InterruptedException e) { throw Throwables.propagate(e); } assertNull(this.dao.findServiceById(r2.getId())); }); }
@Test public void verifySaveAttributeReleasePolicyAllowedAttrRulesAndFilter() { final RegexRegisteredService r = new RegexRegisteredService(); r.setName("testSaveAttributeReleasePolicyAllowedAttrRulesAndFilter"); r.setServiceId("testId"); r.setTheme("testtheme"); r.setEvaluationOrder(1000); r.setAccessStrategy(new DefaultRegisteredServiceAccessStrategy(true, false)); r.setProxyPolicy(new RegexMatchingRegisteredServiceProxyPolicy("https://.+")); r.setRequiredHandlers(new HashSet<>(Lists.newArrayList("h1", "h2"))); final ReturnAllowedAttributeReleasePolicy policy = new ReturnAllowedAttributeReleasePolicy(); policy.setAllowedAttributes(Lists.newArrayList("1", "2", "3")); r.setAttributeReleasePolicy(policy); r.getAttributeReleasePolicy() .setAttributeFilter(new RegisteredServiceRegexAttributeFilter("\\w+")); final RegisteredService r2 = this.dao.save(r); final RegisteredService r3 = this.dao.findServiceById(r2.getId()); assertEquals(r, r2); assertEquals(r2, r3); assertNotNull(r3.getAttributeReleasePolicy()); assertEquals(r2.getAttributeReleasePolicy(), r3.getAttributeReleasePolicy()); }
@Test public void ensureSaveMethodWithDefaultPrincipalAttribute() { final RegexRegisteredService r = new RegexRegisteredService(); r.setName("testSaveMethodWithDefaultPrincipalAttribute"); r.setServiceId("testId"); r.setTheme("theme"); r.setDescription("description"); r.setUsernameAttributeProvider(new PrincipalAttributeRegisteredServiceUsernameProvider("cn")); final RegisteredService r2 = this.dao.save(r); assertEquals(r2, r); }
@Test public void verifyServiceType() { final RegexRegisteredService r = new RegexRegisteredService(); r.setServiceId("^https://.+"); r.setName("testServiceType"); r.setTheme("testtheme"); r.setEvaluationOrder(1000); final RegisteredService r2 = this.dao.save(r); assertTrue(r2 instanceof RegexRegisteredService); }
@Test public void checkSaveMethodWithNonExistentServiceAndNoAttributes() { final RegexRegisteredService r = new RegexRegisteredService(); r.setName("testSaveMethodWithNonExistentServiceAndNoAttributes"); r.setServiceId("testId"); r.setTheme("theme"); r.setDescription("description"); final RegisteredService r2 = this.dao.save(r); final RegisteredService r3 = this.dao.findServiceById(r2.getId()); assertEquals(r, r2); assertEquals(r2, r3); }
@Test public void verifySaveAttributeReleasePolicy() { final RegexRegisteredService r = new RegexRegisteredService(); r.setName("testSaveAttributeReleasePolicy"); r.setServiceId("testId"); r.setTheme("theme"); r.setDescription("description"); r.setAttributeReleasePolicy(new ReturnAllAttributeReleasePolicy()); final RegisteredService r2 = this.dao.save(r); final RegisteredService r3 = this.dao.findServiceById(r2.getId()); assertEquals(r, r2); assertEquals(r2, r3); assertNotNull(r3.getAttributeReleasePolicy()); assertEquals(r2.getAttributeReleasePolicy(), r3.getAttributeReleasePolicy()); }
@Test public void verifySaveMethodWithDefaultAnonymousAttribute() { final RegexRegisteredService r = new RegexRegisteredService(); r.setName("testSaveMethodWithDefaultAnonymousAttribute"); r.setServiceId("testId"); r.setTheme("theme"); r.setDescription("description"); r.setUsernameAttributeProvider( new AnonymousRegisteredServiceUsernameAttributeProvider( new ShibbolethCompatiblePersistentIdGenerator("helloworld"))); final RegisteredService r2 = this.dao.save(r); this.dao.load(); final RegisteredService r3 = this.dao.findServiceById(r2.getId()); final AnonymousRegisteredServiceUsernameAttributeProvider anon = (AnonymousRegisteredServiceUsernameAttributeProvider) r3.getUsernameAttributeProvider(); final ShibbolethCompatiblePersistentIdGenerator ss = (ShibbolethCompatiblePersistentIdGenerator) anon.getPersistentIdGenerator(); assertEquals(new String(ss.getSalt()), "helloworld"); assertEquals(r2, r3); }
@Test public void execSaveWithAuthnMethodPolicy() { final RegexRegisteredService r = new RegexRegisteredService(); r.setName("execSaveWithAuthnMethodPolicy"); r.setServiceId("testId"); r.setTheme("theme"); r.setDescription("description"); final DefaultRegisteredServiceMultifactorPolicy policy = new DefaultRegisteredServiceMultifactorPolicy(); policy.setFailureMode(RegisteredServiceMultifactorPolicy.FailureModes.PHANTOM); final Set<String> set = new HashSet<>(); set.add("duoAuthenticationProvider"); policy.setMultifactorAuthenticationProviders(set); policy.setPrincipalAttributeNameTrigger("memberOf"); policy.setPrincipalAttributeValueToMatch("cas|CAS|admin"); r.setMultifactorPolicy(policy); final RegisteredService r2 = this.dao.save(r); assertEquals(r2, r); }