@Override protected AbstractRegisteredService newInstance() { return new RegexRegisteredService(); }
@Override public RegisteredService read(final Kryo kryo, final Input input, final Class<RegisteredService> type) { val svc = new RegexRegisteredService(); svc.setServiceId(kryo.readObject(input, String.class)); svc.setName(kryo.readObject(input, String.class)); svc.setDescription(kryo.readObject(input, String.class)); svc.setId(kryo.readObject(input, Long.class)); svc.setEvaluationOrder(kryo.readObject(input, Integer.class)); svc.setLogo(kryo.readObject(input, String.class)); svc.setLogoutType(kryo.readObject(input, RegisteredServiceLogoutType.class)); svc.setLogoutUrl(kryo.readObject(input, String.class)); svc.setRequiredHandlers(kryo.readObject(input, HashSet.class)); svc.setTheme(kryo.readObject(input, String.class)); svc.setResponseType(StringUtils.defaultIfBlank(kryo.readObject(input, String.class), null)); svc.setPublicKey(readObjectByReflection(kryo, input, RegisteredServicePublicKey.class)); svc.setProxyPolicy(readObjectByReflection(kryo, input, RegisteredServiceProxyPolicy.class)); svc.setAttributeReleasePolicy(readObjectByReflection(kryo, input, RegisteredServiceAttributeReleasePolicy.class)); svc.setUsernameAttributeProvider(readObjectByReflection(kryo, input, RegisteredServiceUsernameAttributeProvider.class)); svc.setAccessStrategy(readObjectByReflection(kryo, input, RegisteredServiceAccessStrategy.class)); svc.setMultifactorPolicy(readObjectByReflection(kryo, input, RegisteredServiceMultifactorPolicy.class)); svc.setContacts(readObjectByReflection(kryo, input, List.class)); svc.setInformationUrl(StringUtils.defaultIfBlank(kryo.readObject(input, String.class), null)); svc.setPrivacyUrl(StringUtils.defaultIfBlank(kryo.readObject(input, String.class), null)); svc.setProperties(kryo.readObject(input, HashMap.class)); return svc; } }
private static RegisteredService convertServiceProperties(final Map serviceDataMap) { val service = new RegexRegisteredService(); service.setId(Long.parseLong(serviceDataMap.get("id").toString())); service.setName(serviceDataMap.get("name").toString()); service.setDescription(serviceDataMap.getOrDefault("description", StringUtils.EMPTY).toString()); service.setServiceId(serviceDataMap.get("serviceId").toString().replace("**", ".*")); service.setTheme(serviceDataMap.getOrDefault("theme", StringUtils.EMPTY).toString()); service.setEvaluationOrder(Integer.parseInt(serviceDataMap.getOrDefault("evaluationOrder", Integer.MAX_VALUE).toString())); val allowedProxy = Boolean.parseBoolean(serviceDataMap.getOrDefault("allowedToProxy", Boolean.FALSE).toString()); val enabled = Boolean.parseBoolean(serviceDataMap.getOrDefault("enabled", Boolean.TRUE).toString()); val ssoEnabled = Boolean.parseBoolean(serviceDataMap.getOrDefault("ssoEnabled", Boolean.TRUE).toString()); val anonymousAccess = Boolean.parseBoolean(serviceDataMap.getOrDefault("anonymousAccess", Boolean.TRUE).toString()); if (allowedProxy) { service.setProxyPolicy(new RegexMatchingRegisteredServiceProxyPolicy(".+")); } service.setAccessStrategy(new DefaultRegisteredServiceAccessStrategy(enabled, ssoEnabled)); if (anonymousAccess) { service.setUsernameAttributeProvider(new AnonymousRegisteredServiceUsernameAttributeProvider()); } val attributes = (List<String>) serviceDataMap.getOrDefault("allowedAttributes", new ArrayList<>()); service.setAttributeReleasePolicy(new ReturnAllowedAttributeReleasePolicy(attributes)); return service; }
@Override public void configureServiceRegistry(final ServiceRegistryExecutionPlan plan) { val service = new RegexRegisteredService(); service.setId(RandomUtils.getNativeInstance().nextLong()); service.setEvaluationOrder(Ordered.HIGHEST_PRECEDENCE); service.setName(service.getClass().getSimpleName()); service.setDescription("OAuth Authentication Callback Request URL"); service.setServiceId(oauthCallbackService().getId()); service.setAttributeReleasePolicy(new DenyAllAttributeReleasePolicy()); plan.registerServiceRegistry(new OAuth20ServiceRegistry(eventPublisher, service)); } };
@Override public void configureServiceRegistry(final ServiceRegistryExecutionPlan plan) { val callbackService = samlIdPCallbackService().getId().concat(".*"); LOGGER.debug("Initializing SAML IdP callback service [{}]", callbackService); val service = new RegexRegisteredService(); service.setId(RandomUtils.getNativeInstance().nextLong()); service.setEvaluationOrder(Ordered.HIGHEST_PRECEDENCE); service.setName(service.getClass().getSimpleName()); service.setDescription("SAML Authentication Request Callback"); service.setServiceId(callbackService); plan.registerServiceRegistry(new SamlIdPServiceRegistry(eventPublisher, service)); } };