diff --git a/common/keymaster/client-zookeeper/src/main/java/org/apache/syncope/common/keymaster/client/zookeeper/ZookeeperKeymasterClientContext.java b/common/keymaster/client-zookeeper/src/main/java/org/apache/syncope/common/keymaster/client/zookeeper/ZookeeperKeymasterClientContext.java index 5a76d543b3c..0265a3bd1b4 100644 --- a/common/keymaster/client-zookeeper/src/main/java/org/apache/syncope/common/keymaster/client/zookeeper/ZookeeperKeymasterClientContext.java +++ b/common/keymaster/client-zookeeper/src/main/java/org/apache/syncope/common/keymaster/client/zookeeper/ZookeeperKeymasterClientContext.java @@ -33,9 +33,12 @@ import org.apache.syncope.common.keymaster.client.api.KeymasterProperties; import org.apache.syncope.common.keymaster.client.api.ServiceOps; import org.apache.zookeeper.ZooDefs; +import org.apache.zookeeper.client.ZKClientConfig; +import org.apache.zookeeper.common.X509Util; import org.apache.zookeeper.data.ACL; import org.apache.zookeeper.server.auth.DigestLoginModule; import org.springframework.boot.autoconfigure.condition.ConditionOutcome; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.SpringBootCondition; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -63,8 +66,20 @@ public ConditionOutcome getMatchOutcome(final ConditionContext context, final An } @Conditional(ZookeeperCondition.class) + @ConditionalOnMissingBean @Bean - public CuratorFramework curatorFramework(final KeymasterProperties props) throws InterruptedException { + public ZKClientConfig zkClientConfig() { + ZKClientConfig zkClientConfig = new ZKClientConfig(); + zkClientConfig.setProperty(X509Util.FIPS_MODE_PROPERTY, "false"); + return zkClientConfig; + } + + @Conditional(ZookeeperCondition.class) + @Bean + public CuratorFramework curatorFramework( + final ZKClientConfig zkClientConfig, + final KeymasterProperties props) throws InterruptedException { + if (StringUtils.isNotBlank(props.getUsername()) && StringUtils.isNotBlank(props.getPassword())) { javax.security.auth.login.Configuration.setConfiguration(new javax.security.auth.login.Configuration() { @@ -102,7 +117,7 @@ public List getAclForPath(final String path) { } }); } - CuratorFramework client = clientBuilder.build(); + CuratorFramework client = clientBuilder.zkClientConfig(zkClientConfig).build(); client.start(); client.blockUntilConnected(3, TimeUnit.SECONDS); diff --git a/pom.xml b/pom.xml index a7c0b00380a..15d78e71c4a 100644 --- a/pom.xml +++ b/pom.xml @@ -471,7 +471,7 @@ under the License. 4.13.2 5.9.0 - 3.9.3 + 3.9.4 2.1.1 17.6.0