From 0756ef9a757c88cf3eee1a54fa285068ba9704c7 Mon Sep 17 00:00:00 2001 From: Marek Posolda Date: Mon, 17 Oct 2022 23:33:22 +0200 Subject: [PATCH] Initial integration tests with BCFIPS distribution (#14895) Closes #14886 --- .github/workflows/ci.yml | 71 +++++++++ .../common/crypto/CryptoIntegration.java | 15 ++ .../org/keycloak/common/crypto/FipsMode.java | 21 +++ .../common/util/BouncyIntegration.java | 9 -- .../crypto/def/DefaultCryptoProvider.java | 10 ++ .../crypto/fips/FIPS1402Provider.java | 13 ++ .../crypto/fips/test/FIPS1402SslTest.java | 142 +++++++++++++++++ .../src/test/resources/bcfips-keystore.bcfks | Bin 0 -> 2578 bytes .../src/test/resources/bcfips-keystore.pkcs12 | Bin 0 -> 2420 bytes .../src/test/resources/kc.java.security | 46 ++++-- docs/fips.md | 145 ++++++++++++++---- .../org/keycloak/config/SecurityOptions.java | 22 +-- .../quarkus/deployment/KeycloakProcessor.java | 10 +- quarkus/dist/src/main/content/bin/kc.bat | 2 +- quarkus/dist/src/main/content/bin/kc.sh | 2 +- .../quarkus/runtime/KeycloakRecorder.java | 4 +- .../mappers/ClassLoaderPropertyMappers.java | 4 +- .../mappers/SecurityPropertyMappers.java | 10 +- .../email/DefaultEmailSenderProvider.java | 5 +- .../FileTruststoreProviderFactory.java | 34 +++- .../integration-arquillian/HOW-TO-RUN.md | 22 +++ .../auth-server/common/fips/kc.java.security | 51 ++++++ .../common/fips/keycloak-fips.keystore.pkcs12 | Bin 0 -> 2719 bytes .../fips/keycloak-fips.truststore.pkcs12 | Bin 0 -> 234529 bytes .../servers/auth-server/quarkus/pom.xml | 64 ++++++++ .../KeycloakQuarkusConfiguration.java | 81 ++++++++++ ...cloakQuarkusServerDeployableContainer.java | 29 +++- .../integration-arquillian/tests/pom.xml | 27 ++++ 28 files changed, 743 insertions(+), 96 deletions(-) create mode 100644 common/src/main/java/org/keycloak/common/crypto/FipsMode.java create mode 100644 crypto/fips1402/src/test/java/org/keycloak/crypto/fips/test/FIPS1402SslTest.java create mode 100644 crypto/fips1402/src/test/resources/bcfips-keystore.bcfks create mode 100644 crypto/fips1402/src/test/resources/bcfips-keystore.pkcs12 create mode 100644 testsuite/integration-arquillian/servers/auth-server/common/fips/kc.java.security create mode 100644 testsuite/integration-arquillian/servers/auth-server/common/fips/keycloak-fips.keystore.pkcs12 create mode 100644 testsuite/integration-arquillian/servers/auth-server/common/fips/keycloak-fips.truststore.pkcs12 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65b5d2af51..62f3c4372a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -274,6 +274,77 @@ jobs: path: reports-${{ matrix.server }}-base-tests-${{ matrix.tests }}.zip if-no-files-found: ignore + test-fips: + name: Base testsuite (fips) + needs: build + runs-on: ubuntu-latest + strategy: + matrix: + server: ['bcfips-nonapproved-pkcs12'] + tests: ['group1'] + fail-fast: false + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 2 + + - name: Cache Maven packages + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: cache-2-${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: cache-1-${{ runner.os }}-m2 + + - name: Download built keycloak + id: download-keycloak + uses: actions/download-artifact@v3 + with: + path: ~/.m2/repository/org/keycloak/ + name: keycloak-artifacts.zip + + # - name: List M2 repo + # run: | + # find ~ -name *dist*.zip + # ls -lR ~/.m2/repository + + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ env.DEFAULT_JDK_VERSION }} + - name: Update maven settings + run: mkdir -p ~/.m2 ; cp .github/settings.xml ~/.m2/ + - name: Prepare quarkus distribution with BCFIPS + run: ./mvnw clean install -nsu -B -e -f testsuite/integration-arquillian/servers/auth-server/quarkus -Pauth-server-quarkus,auth-server-fips140-2 + - name: Run base tests + run: | + declare -A PARAMS TESTGROUP + PARAMS["bcfips-nonapproved-pkcs12"]="-Pauth-server-quarkus,auth-server-fips140-2" + TESTGROUP["group1"]="-Dtest=org.keycloak.testsuite.forms.**" # Tests in the package "forms" + + ./mvnw clean install -nsu -B ${PARAMS["${{ matrix.server }}"]} ${TESTGROUP["${{ matrix.tests }}"]} -f testsuite/integration-arquillian/tests/base/pom.xml | misc/log/trimmer.sh + + TEST_RESULT=${PIPESTATUS[0]} + find . -path '*/target/surefire-reports/*.xml' | zip -q reports-${{ matrix.server }}-base-tests-${{ matrix.tests }}.zip -@ + exit $TEST_RESULT + + - name: Analyze Test and/or Coverage Results + uses: runforesight/foresight-test-kit-action@v1 + if: always() && github.repository == 'keycloak/keycloak' + with: + api_key: ${{ secrets.FORESIGHT_API_KEY }} + test_format: JUNIT + test_framework: JUNIT + test_path: 'testsuite/integration-arquillian/tests/base/target/surefire-reports/*.xml' + + - name: Base test reports + uses: actions/upload-artifact@v3 + if: failure() + with: + name: reports-${{ matrix.server }}-base-tests-${{ matrix.tests }} + retention-days: 14 + path: reports-${{ matrix.server }}-base-tests-${{ matrix.tests }}.zip + if-no-files-found: ignore + test-posgres: name: Base testsuite (postgres) needs: build diff --git a/common/src/main/java/org/keycloak/common/crypto/CryptoIntegration.java b/common/src/main/java/org/keycloak/common/crypto/CryptoIntegration.java index e02b6dd7ed..436f833d2f 100644 --- a/common/src/main/java/org/keycloak/common/crypto/CryptoIntegration.java +++ b/common/src/main/java/org/keycloak/common/crypto/CryptoIntegration.java @@ -1,10 +1,12 @@ package org.keycloak.common.crypto; +import java.security.KeyStore; import java.security.Provider; import java.security.Security; import java.util.List; import java.util.ServiceLoader; import java.util.stream.Collectors; +import java.util.stream.Stream; import java.util.stream.StreamSupport; import org.jboss.logging.Logger; @@ -33,6 +35,7 @@ public class CryptoIntegration { if (logger.isTraceEnabled()) { logger.tracef(dumpJavaSecurityProviders()); + logger.tracef(dumpSecurityProperties()); } } @@ -68,7 +71,19 @@ public class CryptoIntegration { return builder.append("]").toString(); } + public static String dumpSecurityProperties() { + StringBuilder builder = new StringBuilder("Security properties: [ \n") + .append(" Java security properties file: " + System.getProperty("java.security.properties") + "\n") + .append(" Default keystore type: " + KeyStore.getDefaultType() + "\n") + .append(" keystore.type.compat: " + Security.getProperty("keystore.type.compat") + "\n"); + Stream.of("javax.net.ssl.trustStoreType", "javax.net.ssl.trustStore", "javax.net.ssl.trustStoreProvider", + "javax.net.ssl.keyStoreType", "javax.net.ssl.keyStore", "javax.net.ssl.keyStoreProvider") + .forEach(propertyName -> builder.append(" " + propertyName + ": " + System.getProperty(propertyName) + "\n")); + return builder.append("]").toString(); + } + public static void setProvider(CryptoProvider provider) { + logger.debugf("Using the crypto provider: %s", provider.getClass().getName()); cryptoProvider = provider; } } diff --git a/common/src/main/java/org/keycloak/common/crypto/FipsMode.java b/common/src/main/java/org/keycloak/common/crypto/FipsMode.java new file mode 100644 index 0000000000..1f6c876791 --- /dev/null +++ b/common/src/main/java/org/keycloak/common/crypto/FipsMode.java @@ -0,0 +1,21 @@ +package org.keycloak.common.crypto; + +public enum FipsMode { + enabled("org.keycloak.crypto.fips.FIPS1402Provider"), + strict("org.keycloak.crypto.fips.Fips1402StrictCryptoProvider"), + disabled("org.keycloak.crypto.def.DefaultCryptoProvider"); + + private String providerClassName; + + FipsMode(String providerClassName) { + this.providerClassName = providerClassName; + } + + public boolean isFipsEnabled() { + return this.equals(enabled) || this.equals(strict); + } + + public String getProviderClassName() { + return providerClassName; + } +} diff --git a/common/src/main/java/org/keycloak/common/util/BouncyIntegration.java b/common/src/main/java/org/keycloak/common/util/BouncyIntegration.java index 8c25439aef..3e120d2b43 100755 --- a/common/src/main/java/org/keycloak/common/util/BouncyIntegration.java +++ b/common/src/main/java/org/keycloak/common/util/BouncyIntegration.java @@ -17,7 +17,6 @@ package org.keycloak.common.util; -import org.jboss.logging.Logger; import org.keycloak.common.crypto.CryptoIntegration; import java.security.Provider; @@ -29,8 +28,6 @@ import java.security.Security; */ public class BouncyIntegration { - private static final Logger log = Logger.getLogger(BouncyIntegration.class); - public static final String PROVIDER = loadProvider(); private static String loadProvider() { @@ -39,12 +36,6 @@ public class BouncyIntegration { return Security.getProviders()[0].getName(); // throw new RuntimeException("Failed to load required security provider: BouncyCastleProvider or BouncyCastleFipsProvider"); } - if (Security.getProvider(provider.getName()) == null) { - Security.addProvider(provider); - log.debugv("Loaded {0} security provider", provider.getClass().getName()); - } else { - log.debugv("Security provider {0} already loaded", provider.getClass().getName()); - } return provider.getName(); } diff --git a/crypto/default/src/main/java/org/keycloak/crypto/def/DefaultCryptoProvider.java b/crypto/default/src/main/java/org/keycloak/crypto/def/DefaultCryptoProvider.java index 5b2c0434ca..339cfdec31 100644 --- a/crypto/default/src/main/java/org/keycloak/crypto/def/DefaultCryptoProvider.java +++ b/crypto/default/src/main/java/org/keycloak/crypto/def/DefaultCryptoProvider.java @@ -27,6 +27,7 @@ import org.bouncycastle.jce.ECNamedCurveTable; import org.bouncycastle.jce.spec.ECNamedCurveParameterSpec; import org.bouncycastle.jce.spec.ECNamedCurveSpec; import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.jboss.logging.Logger; import org.keycloak.common.crypto.CryptoProvider; import org.keycloak.common.crypto.CryptoConstants; import org.keycloak.common.crypto.ECDSACryptoProvider; @@ -42,6 +43,8 @@ import org.keycloak.crypto.JavaAlgorithm; */ public class DefaultCryptoProvider implements CryptoProvider { + private static final Logger log = Logger.getLogger(DefaultCryptoProvider.class); + private final Provider bcProvider; private Map providers = new ConcurrentHashMap<>(); @@ -55,6 +58,13 @@ public class DefaultCryptoProvider implements CryptoProvider { providers.put(CryptoConstants.RSA1_5, new DefaultRsaKeyEncryptionJWEAlgorithmProvider("RSA/ECB/PKCS1Padding")); providers.put(CryptoConstants.RSA_OAEP, new DefaultRsaKeyEncryptionJWEAlgorithmProvider("RSA/ECB/OAEPWithSHA-1AndMGF1Padding")); providers.put(CryptoConstants.RSA_OAEP_256, new DefaultRsaKeyEncryption256JWEAlgorithmProvider("RSA/ECB/OAEPWithSHA-256AndMGF1Padding")); + + if (existingBc == null) { + Security.addProvider(this.bcProvider); + log.debugv("Loaded {0} security provider", this.bcProvider.getClass().getName()); + } else { + log.debugv("Security provider {0} already loaded", this.bcProvider.getClass().getName()); + } } diff --git a/crypto/fips1402/src/main/java/org/keycloak/crypto/fips/FIPS1402Provider.java b/crypto/fips1402/src/main/java/org/keycloak/crypto/fips/FIPS1402Provider.java index 477780d5a9..40c5e91134 100644 --- a/crypto/fips1402/src/main/java/org/keycloak/crypto/fips/FIPS1402Provider.java +++ b/crypto/fips1402/src/main/java/org/keycloak/crypto/fips/FIPS1402Provider.java @@ -21,6 +21,7 @@ import java.security.cert.CertStore; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.CollectionCertStoreParameters; +import java.util.Arrays; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -33,7 +34,9 @@ import org.bouncycastle.asn1.x9.X9ECParameters; import org.bouncycastle.crypto.fips.FipsRSA; import org.bouncycastle.crypto.fips.FipsSHS; import org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider; +import org.bouncycastle.jsse.provider.BouncyCastleJsseProvider; import org.bouncycastle.math.ec.ECCurve; +import org.jboss.logging.Logger; import org.keycloak.common.crypto.CryptoProvider; import org.keycloak.common.crypto.ECDSACryptoProvider; import org.keycloak.common.crypto.CryptoConstants; @@ -52,6 +55,8 @@ import org.keycloak.crypto.JavaAlgorithm; */ public class FIPS1402Provider implements CryptoProvider { + private static final Logger log = Logger.getLogger(FIPS1402Provider.class); + private final BouncyCastleFipsProvider bcFipsProvider; private final Map providers = new ConcurrentHashMap<>(); @@ -66,6 +71,14 @@ public class FIPS1402Provider implements CryptoProvider { providers.put(CryptoConstants.RSA_OAEP_256, new FIPSRsaKeyEncryptionJWEAlgorithmProvider(FipsRSA.WRAP_OAEP.withDigest(FipsSHS.Algorithm.SHA256))); Security.insertProviderAt(new KeycloakFipsSecurityProvider(bcFipsProvider), 1); + if (existingBcFipsProvider == null) { + Security.insertProviderAt(this.bcFipsProvider, 2); + Provider bcJsseProvider = new BouncyCastleJsseProvider("fips:BCFIPS"); + Security.insertProviderAt(bcJsseProvider, 3); + log.debugf("Inserted security providers: %s", Arrays.asList(this.bcFipsProvider.getName(),bcJsseProvider.getName())); + } else { + log.debugf("Security provider %s already loaded", existingBcFipsProvider.getName()); + } } diff --git a/crypto/fips1402/src/test/java/org/keycloak/crypto/fips/test/FIPS1402SslTest.java b/crypto/fips1402/src/test/java/org/keycloak/crypto/fips/test/FIPS1402SslTest.java new file mode 100644 index 0000000000..085f542dca --- /dev/null +++ b/crypto/fips1402/src/test/java/org/keycloak/crypto/fips/test/FIPS1402SslTest.java @@ -0,0 +1,142 @@ +package org.keycloak.crypto.fips.test; + +import java.io.InputStream; +import java.lang.reflect.Constructor; +import java.security.KeyStore; +import java.security.Provider; +import java.security.Security; +import java.util.Arrays; +import java.util.List; + +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLEngine; +import javax.net.ssl.SSLSessionContext; + +import org.bouncycastle.crypto.CryptoServicesRegistrar; +import org.jboss.logging.Logger; +import org.junit.Assert; +import org.junit.Assume; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Ignore; +import org.junit.Test; +import org.keycloak.common.crypto.CryptoIntegration; +import org.keycloak.common.util.Environment; +import org.keycloak.rule.CryptoInitRule; + +import static org.hamcrest.Matchers.greaterThan; + +/** + * @author Marek Posolda + */ +public class FIPS1402SslTest { + + protected static final Logger logger = Logger.getLogger(FIPS1402SslTest.class); + + @ClassRule + public static CryptoInitRule cryptoInitRule = new CryptoInitRule(); + + + @BeforeClass + public static void dumpSecurityProviders() { + logger.info(CryptoIntegration.dumpJavaSecurityProviders()); + logger.info(CryptoIntegration.dumpSecurityProperties()); + } + + @Before + public void before() { + // Run this test just if java is in FIPS mode + Assume.assumeTrue("Java is not in FIPS mode. Skipping the test.", Environment.isJavaInFipsMode()); + } + + @Test + public void testPkcs12KeyStoreWithPKIXKeyMgrFactory() throws Exception { + // PKCS12 keystore works just in non-approved mode + Assume.assumeFalse(CryptoServicesRegistrar.isInApprovedOnlyMode()); + String type = "PKCS12"; + String password = "passwordpassword"; + + KeyStore keystore = loadKeystore(type, password); + String keyMgrDefaultAlgorithm = KeyManagerFactory.getDefaultAlgorithm(); + KeyManagerFactory keyMgrFact = getKeyMgrFactory(password, keystore, keyMgrDefaultAlgorithm); + testSSLContext(keyMgrFact); + } + + // This works with BCFIPS, but requires addition of security provider "com.sun.net.ssl.internal.ssl.Provider BCFIPS" to Java Security providers + @Test + @Ignore("Skip for now and keep it just for the reference. We can check if we want to test this path with SunX509 algorithm withadditional security provider") + public void testPkcs12KeyStoreWithSunX509KeyMgrFactory() throws Exception { + // PKCS12 keystore works just in non-approved mode + Assume.assumeFalse(CryptoServicesRegistrar.isInApprovedOnlyMode()); + String type = "PKCS12"; + String password = "passwordpassword"; + + KeyStore keystore = loadKeystore(type, password); + String keyMgrDefaultAlgorithm = "SunX509"; + KeyManagerFactory keyMgrFact = getKeyMgrFactory(password, keystore, keyMgrDefaultAlgorithm); + testSSLContext(keyMgrFact); + } + + @Test + public void testBcfksKeyStoreWithPKIXKeyMgrFactory() throws Exception { + String type = "BCFKS"; + String password = "passwordpassword"; + + KeyStore keystore = loadKeystore(type, password); + String keyMgrDefaultAlgorithm = KeyManagerFactory.getDefaultAlgorithm(); + KeyManagerFactory keyMgrFact = getKeyMgrFactory(password, keystore, keyMgrDefaultAlgorithm); + testSSLContext(keyMgrFact); + } + + // This works with BCFIPS, but requires addition of security provider "com.sun.net.ssl.internal.ssl.Provider BCFIPS" to Java Security providers + @Test + @Ignore("Skip for now and keep it just for the reference. We can check if we want to test this path with SunX509 algorithm withadditional security provider") + public void testBcfksKeyStoreWithSunX509KeyMgrFactory() throws Exception { + String type = "BCFKS"; + String password = "passwordpassword"; + + KeyStore keystore = loadKeystore(type, password); + String keyMgrDefaultAlgorithm = "SunX509"; + KeyManagerFactory keyMgrFact = getKeyMgrFactory(password, keystore, keyMgrDefaultAlgorithm); + testSSLContext(keyMgrFact); + } + + private KeyStore loadKeystore(String type, String password) throws Exception { + KeyStore keystore = KeyStore.getInstance(type); + InputStream in = FIPS1402SslTest.class.getClassLoader().getResourceAsStream("bcfips-keystore." + type.toLowerCase()); + keystore.load(in, password != null ? password.toCharArray() : null); + logger.infof("Keystore loaded successfully. Type: %s, provider: %s", keystore.getProvider().getName()); + return keystore; + } + + private KeyManagerFactory getKeyMgrFactory(String password, KeyStore keystore, String keyMgrAlgorithm) throws Exception { + KeyManagerFactory keyMgrFact = KeyManagerFactory.getInstance(keyMgrAlgorithm); + char[] keyPassword = password.toCharArray(); + keyMgrFact.init(keystore, keyPassword); + logger.infof("KeyManagerFactory loaded for algorithm: %s", keyMgrAlgorithm); + return keyMgrFact; + } + + + private void testSSLContext(KeyManagerFactory keyMgrFact) throws Exception { + SSLContext context = SSLContext.getInstance("TLS"); + context.init(keyMgrFact.getKeyManagers(), null, null); + SSLEngine engine = context.createSSLEngine(); + + List enabledCipherSuites = Arrays.asList(engine.getEnabledCipherSuites()); + List supportedProtocols = Arrays.asList(context.getDefaultSSLParameters().getProtocols()); + List supportedCiphers = Arrays.asList(engine.getSupportedCipherSuites()); + + logger.infof("Enabled ciphersuites: %s", enabledCipherSuites.size()); + logger.infof("Supported protocols: %s", supportedProtocols); + logger.infof("Supported ciphers size: %d", supportedCiphers.size()); + Assert.assertThat(enabledCipherSuites.size(), greaterThan(0)); + Assert.assertThat(supportedProtocols.size(), greaterThan(0)); + Assert.assertThat(supportedCiphers.size(), greaterThan(0)); + + SSLSessionContext sslServerCtx = context.getServerSessionContext(); + Assert.assertNotNull(sslServerCtx); + } +} diff --git a/crypto/fips1402/src/test/resources/bcfips-keystore.bcfks b/crypto/fips1402/src/test/resources/bcfips-keystore.bcfks new file mode 100644 index 0000000000000000000000000000000000000000..26635fa4437b8ff4559110b6231d096860cf2f00 GIT binary patch literal 2578 zcmV+t3hnhUf(i~Wf(cPDfs_UbDuzgg_YDCB4KRU*Fk}V^Duzgg_YDCB3@}#&Ko!Yu z>tp%n#|$*ga|ZX!SFDBQp%a;dHS|%Ldr&_WkPHqJO9>4Ce7RBkP-2A6b;#n)eq+@$ zA19zVc8IBuLjnRo00IFZFboC=Duzgg_YDFI1pqJ}1_@w>NC9O71OYEF5d;kM>ghFk zc0DeL`6-bC0SE+w2)410f2`WJiU9VcG#xa}`ZR6LRbc?fL;AIIR1p>aITBLKYn7#TLv3e;y&_i{4#;n2V0Z}Ya;#t4=QLrFVbCJOB?J=2D z13ONom#9s+gZ*4mgv$cAVWg5-0rpvvJQu)%vE^T7k-EU4S4oR42&^MHE_Yn8quKZ9l+n33Yavt z{VB!WPUyTgKpaabE)H0y3V1LKdSCcaqe|SaD0KXcr70#u~hiFU>oXwx5LyFs(?iX#Ljso4%f~ zN^*=#-F#a*zoE`Enbeh;8l%>Yml3Dq(`Y!vP2aSNd^`hfaF{JSF2Bxjpp>^2lzotM zkdTrGX9^#Y(msOmXr;slQ+Y5uAPw@@21=t7S~opFkuJ{UcEf%AxpzJbFbSXNq zA3kSGLN9#iL>EQe5u*rE7!drh|9+(B-c@=$(0)JZXtHPcY#*H~EqhXg|KiL%f*f2! z#Bn;6rNdgegBQ@zNQH zt2PGYuqLs#MC0sn1J9$)<^v&lS`%G?k#Im>`%X~cBQCJe-z!~nOD^bTAYioIxsja%2Y4+7o7ZX|@k) z>SGHT(N}A;KVc+&%^EazJ28D~X~(4g(VQO0905fk4`^YSb+%V-t!~;mF43#2qXhRj zxylkVQEn_Bw#{p8{AiV6`faDUKb>8a$(+?X3<_%Xab!0w^i?D5^o(fEg+CV$GZL_9h_F0YG)xlBrc10xJruqYY_|s z224WFWB$UWKEm%4EvLj~+rBiAj5EghXJuZ=hS3G$0NyN}U++l5#C-&^kiy}3(D{c5 z&VSHgJnW@n8k#3chK(HyO6jO@ryI%fPAIlDM$6&G<=zj7z0M*|y(ISX%k zSSlI-HZWY)-3-a6N~1s&@^?isp;DJ%Wf2C)M4;z4QRF^Pu0%^eVz#ST{&x}{;*LHK z+T$PN^iaw*o0>tiAxK0Il@e&xwB*iyKJ4SF!NBAAcV^ko{ftj>n38npWmG%m6PP?n zGQV|3j~@`921>e2?DkXNxp?-^OadylR7r!+bLU08odTrz8PBi1`$pv_sElaSBp_uQ zRg`9N9sBq+ma-f5!>t#3%*GP9QN)O@xxVe*+?B`RKXvuiA4R*EN5jx}d9~7+ox@PE zn8gu%%c>`dHP#AdI*JKaVpwF*i#MoM=oqr;c5wYEVWqmbg(RS-xYQi@s&zW*=-I4S zFxFm2-`-nF&jc+7^VYpzo|^t@@?fKP}?oTG`jkPs$neK!2?K*PkTGTIYRa4u9nz55<{+( zKOavT4Q?wMy$vF*EEj-B;(O)~PfTKvCRDrV2Rq@2B+4;IMiBF4>;L`C9=@be#L#Xw zOlqPmoo2O8MT*G7PTuh^9h8UUnOmWhLqgVOgg*9q0TWD5m$LSOoV-lbdu?}Z+{b>K z!L$~N0>7ZV>;$KFOdM53To?VlnFjH_QpEA$5loNGSoH+{wDl&L8;^D{QOpYGQ6m*N zgHbZ9e}MtnEEIew0}BzNP|6d`8Z2bn3Jn^cZXEZ(i|!FWDJU~X<$Szj7?S-x77$$P z-sj-|<}21kr)uA$$O#j9l~cv-YXU(d_%boo@BAQxAlIeZ-1vp0ovj7(ZGxFq$s%#O ztFc_$cHQI%mJyro(<6u28gHa4o_mKo~iWeU`vHGFS4GrVPx;d8#6vM<}LU&1I$M@N} z{Z@vot9DYg0#7{yl1OHKT^Q@0S9V#f-))T@5*Ky7bB_7Yi8UfCNS}{fYCgEo8SUnYG=_=Px}y~ym|1C>|Jzca{vGU literal 0 HcmV?d00001 diff --git a/crypto/fips1402/src/test/resources/bcfips-keystore.pkcs12 b/crypto/fips1402/src/test/resources/bcfips-keystore.pkcs12 new file mode 100644 index 0000000000000000000000000000000000000000..537395180deae908a029f284227c6caceeb408b1 GIT binary patch literal 2420 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 SF6-oe<~ FIPS_MODE = new OptionBuilder<>("fips-mode", FipsMode.class) .category(OptionCategory.SECURITY) .buildTime(true) diff --git a/quarkus/deployment/src/main/java/org/keycloak/quarkus/deployment/KeycloakProcessor.java b/quarkus/deployment/src/main/java/org/keycloak/quarkus/deployment/KeycloakProcessor.java index 8636f0a971..7c0f4e9c03 100644 --- a/quarkus/deployment/src/main/java/org/keycloak/quarkus/deployment/KeycloakProcessor.java +++ b/quarkus/deployment/src/main/java/org/keycloak/quarkus/deployment/KeycloakProcessor.java @@ -89,6 +89,7 @@ import org.jboss.logging.Logger; import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters; import org.jboss.resteasy.spi.ResteasyDeployment; import org.keycloak.Config; +import org.keycloak.common.crypto.FipsMode; import org.keycloak.config.SecurityOptions; import org.keycloak.config.StorageOptions; import org.keycloak.connections.jpa.JpaConnectionProvider; @@ -305,10 +306,9 @@ class KeycloakProcessor { * * @param recorder */ - @Consume(BootstrapConfigSetupCompleteBuildItem.class) @Record(ExecutionTime.STATIC_INIT) @BuildStep - KeycloakSessionFactoryPreInitBuildItem configureProviders(KeycloakRecorder recorder, List descriptors) { + KeycloakSessionFactoryPreInitBuildItem configureKeycloakSessionFactory(KeycloakRecorder recorder, List descriptors) { Profile.setInstance(new QuarkusProfile()); Map, Map>>> factories = new HashMap<>(); Map, String> defaultProviders = new HashMap<>(); @@ -572,13 +572,13 @@ class KeycloakProcessor { })); } - @Consume(KeycloakSessionFactoryPreInitBuildItem.class) + @Consume(BootstrapConfigSetupCompleteBuildItem.class) @BuildStep @Record(ExecutionTime.STATIC_INIT) void setCryptoProvider(KeycloakRecorder recorder) { - SecurityOptions.FipsMode fipsMode = Configuration.getOptionalValue( + FipsMode fipsMode = Configuration.getOptionalValue( MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + SecurityOptions.FIPS_MODE.getKey()).map( - SecurityOptions.FipsMode::valueOf).orElse(SecurityOptions.FipsMode.disabled); + FipsMode::valueOf).orElse(FipsMode.disabled); recorder.setCryptoProvider(fipsMode); } diff --git a/quarkus/dist/src/main/content/bin/kc.bat b/quarkus/dist/src/main/content/bin/kc.bat index 9eb3a18c41..4fe25e31db 100644 --- a/quarkus/dist/src/main/content/bin/kc.bat +++ b/quarkus/dist/src/main/content/bin/kc.bat @@ -124,7 +124,7 @@ if "x%JAVA_HOME%" == "x" ( ) ) -set "CLASSPATH_OPTS=%DIRNAME%..\lib\quarkus-run.jar" +set "CLASSPATH_OPTS=%DIRNAME%..\lib\quarkus-run.jar:%DIRNAME%..\lib\bootstrap\*" set "JAVA_RUN_OPTS=%JAVA_OPTS% -Dkc.home.dir="%DIRNAME%.." -Djboss.server.config.dir="%DIRNAME%..\conf" -Dkeycloak.theme.dir="%DIRNAME%..\themes" %SERVER_OPTS% -cp "%CLASSPATH_OPTS%" io.quarkus.bootstrap.runner.QuarkusEntryPoint %CONFIG_ARGS%" diff --git a/quarkus/dist/src/main/content/bin/kc.sh b/quarkus/dist/src/main/content/bin/kc.sh index 2a4d785d9b..d7be862cde 100644 --- a/quarkus/dist/src/main/content/bin/kc.sh +++ b/quarkus/dist/src/main/content/bin/kc.sh @@ -36,7 +36,7 @@ SERVER_OPTS="-Dkc.home.dir='$(abs_path '..')'" SERVER_OPTS="$SERVER_OPTS -Djboss.server.config.dir='$(abs_path '../conf')'" SERVER_OPTS="$SERVER_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager" SERVER_OPTS="$SERVER_OPTS -Dquarkus-log-max-startup-records=10000" -CLASSPATH_OPTS="'$(abs_path "../lib/quarkus-run.jar")'" +CLASSPATH_OPTS="'$(abs_path "../lib/quarkus-run.jar"):$(abs_path "../lib/bootstrap/*")'" DEBUG_MODE="${DEBUG:-false}" DEBUG_PORT="${DEBUG_PORT:-8787}" diff --git a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/KeycloakRecorder.java b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/KeycloakRecorder.java index adcaef1cd4..bf1a3579ee 100644 --- a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/KeycloakRecorder.java +++ b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/KeycloakRecorder.java @@ -40,7 +40,7 @@ import org.keycloak.Config; import org.keycloak.common.Profile; import org.keycloak.common.crypto.CryptoIntegration; import org.keycloak.common.crypto.CryptoProvider; -import org.keycloak.config.SecurityOptions; +import org.keycloak.common.crypto.FipsMode; import org.keycloak.quarkus.runtime.configuration.Configuration; import org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider; import org.keycloak.quarkus.runtime.integration.QuarkusKeycloakSessionFactory; @@ -166,7 +166,7 @@ public class KeycloakRecorder { }; } - public void setCryptoProvider(SecurityOptions.FipsMode fipsMode) { + public void setCryptoProvider(FipsMode fipsMode) { String cryptoProvider = fipsMode.getProviderClassName(); try { diff --git a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/ClassLoaderPropertyMappers.java b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/ClassLoaderPropertyMappers.java index 8026565ce6..51368edfc1 100644 --- a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/ClassLoaderPropertyMappers.java +++ b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/ClassLoaderPropertyMappers.java @@ -3,6 +3,8 @@ package org.keycloak.quarkus.runtime.configuration.mappers; import static org.keycloak.quarkus.runtime.configuration.mappers.PropertyMapper.fromOption; import java.util.Optional; + +import org.keycloak.common.crypto.FipsMode; import org.keycloak.config.ClassLoaderOptions; import org.keycloak.config.SecurityOptions; import org.keycloak.quarkus.runtime.Environment; @@ -30,7 +32,7 @@ final class ClassLoaderPropertyMappers { ConfigValue fipsEnabled = Configuration.getConfigValue( MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + SecurityOptions.FIPS_MODE.getKey()); - if (fipsEnabled != null && SecurityOptions.FipsMode.valueOf(fipsEnabled.getValue()).isFipsEnabled()) { + if (fipsEnabled != null && FipsMode.valueOf(fipsEnabled.getValue()).isFipsEnabled()) { return Optional.of( "org.bouncycastle:bcprov-jdk15on,org.bouncycastle:bcpkix-jdk15on,org.keycloak:keycloak-crypto-default"); } diff --git a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/SecurityPropertyMappers.java b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/SecurityPropertyMappers.java index 6c7db320a7..e15272d5a7 100644 --- a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/SecurityPropertyMappers.java +++ b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/configuration/mappers/SecurityPropertyMappers.java @@ -4,6 +4,8 @@ import static java.util.Optional.of; import static org.keycloak.quarkus.runtime.configuration.mappers.PropertyMapper.fromOption; import java.util.Optional; + +import org.keycloak.common.crypto.FipsMode; import org.keycloak.config.SecurityOptions; import io.smallrye.config.ConfigSourceInterceptorContext; @@ -23,16 +25,16 @@ final class SecurityPropertyMappers { private static Optional resolveFipsMode(Optional value, ConfigSourceInterceptorContext context) { if (value.isEmpty()) { - return of(SecurityOptions.FipsMode.disabled.toString()); + return of(FipsMode.disabled.toString()); } - return of(SecurityOptions.FipsMode.valueOf(value.get()).toString()); + return of(FipsMode.valueOf(value.get()).toString()); } private static Optional resolveSecurityProvider(Optional value, ConfigSourceInterceptorContext configSourceInterceptorContext) { - SecurityOptions.FipsMode fipsMode = value.map(SecurityOptions.FipsMode::valueOf) - .orElse(SecurityOptions.FipsMode.disabled); + FipsMode fipsMode = value.map(FipsMode::valueOf) + .orElse(FipsMode.disabled); if (fipsMode.isFipsEnabled()) { return of("BCFIPS"); diff --git a/services/src/main/java/org/keycloak/email/DefaultEmailSenderProvider.java b/services/src/main/java/org/keycloak/email/DefaultEmailSenderProvider.java index 6473c22e51..6b848971ca 100644 --- a/services/src/main/java/org/keycloak/email/DefaultEmailSenderProvider.java +++ b/services/src/main/java/org/keycloak/email/DefaultEmailSenderProvider.java @@ -38,8 +38,6 @@ import javax.mail.internet.MimeMultipart; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import java.io.UnsupportedEncodingException; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; import java.util.Date; import java.util.Map; import java.util.Properties; @@ -49,9 +47,8 @@ import java.util.Properties; */ public class DefaultEmailSenderProvider implements EmailSenderProvider { - private static final String SUPPORTED_SSL_PROTOCOLS = getSupportedSslProtocols(); - private static final Logger logger = Logger.getLogger(DefaultEmailSenderProvider.class); + private static final String SUPPORTED_SSL_PROTOCOLS = getSupportedSslProtocols(); private final KeycloakSession session; diff --git a/services/src/main/java/org/keycloak/truststore/FileTruststoreProviderFactory.java b/services/src/main/java/org/keycloak/truststore/FileTruststoreProviderFactory.java index 578e612424..5b5f09b790 100755 --- a/services/src/main/java/org/keycloak/truststore/FileTruststoreProviderFactory.java +++ b/services/src/main/java/org/keycloak/truststore/FileTruststoreProviderFactory.java @@ -19,6 +19,7 @@ package org.keycloak.truststore; import org.jboss.logging.Logger; import org.keycloak.Config; +import org.keycloak.common.util.KeystoreUtil; import org.keycloak.models.KeycloakSession; import org.keycloak.models.KeycloakSessionFactory; import org.keycloak.provider.ProviderConfigProperty; @@ -44,6 +45,8 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; + import javax.security.auth.x500.X500Principal; /** @@ -66,6 +69,7 @@ public class FileTruststoreProviderFactory implements TruststoreProviderFactory String storepath = config.get("file"); String pass = config.get("password"); String policy = config.get("hostname-verification-policy"); + String configuredType = config.get("type"); // if "truststore" . "file" is not configured then it is disabled if (storepath == null && pass == null && policy == null) { @@ -82,10 +86,11 @@ public class FileTruststoreProviderFactory implements TruststoreProviderFactory throw new RuntimeException("Attribute 'password' missing in 'truststore':'file' configuration"); } + String type = getTruststoreType(storepath, configuredType); try { - truststore = loadStore(storepath, pass == null ? null :pass.toCharArray()); + truststore = loadStore(storepath, type, pass == null ? null :pass.toCharArray()); } catch (Exception e) { - throw new RuntimeException("Failed to initialize TruststoreProviderFactory: " + new File(storepath).getAbsolutePath(), e); + throw new RuntimeException("Failed to initialize TruststoreProviderFactory: " + new File(storepath).getAbsolutePath() + ", truststore type: " + type, e); } if (policy == null) { verificationPolicy = HostnameVerificationPolicy.WILDCARD; @@ -101,11 +106,11 @@ public class FileTruststoreProviderFactory implements TruststoreProviderFactory provider = new FileTruststoreProvider(truststore, verificationPolicy, Collections.unmodifiableMap(certsLoader.trustedRootCerts) , Collections.unmodifiableMap(certsLoader.intermediateCerts)); TruststoreProviderSingleton.set(provider); - log.debug("File truststore provider initialized: " + new File(storepath).getAbsolutePath()); + log.debugf("File truststore provider initialized: %s, Truststore type: %s", new File(storepath).getAbsolutePath(), type); } - private KeyStore loadStore(String path, char[] password) throws Exception { - KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); + private KeyStore loadStore(String path, String type, char[] password) throws Exception { + KeyStore ks = KeyStore.getInstance(type); InputStream is = new FileInputStream(path); try { ks.load(is, password); @@ -154,6 +159,25 @@ public class FileTruststoreProviderFactory implements TruststoreProviderFactory .build(); } + private String getTruststoreType(String path, String configuredType) { + // Configured type has precedence + if (configuredType != null) return configuredType; + + // Fallback to detected tyoe from the file format (EG. my-keystore.pkcs12 will return "pkcs12") + int lastDotIndex = path.lastIndexOf('.'); + if (lastDotIndex > -1) { + String ext = path.substring(lastDotIndex).toUpperCase(); + Optional detectedType = Arrays.stream(KeystoreUtil.KeystoreFormat.values()) + .map(KeystoreUtil.KeystoreFormat::toString) + .filter(ksFormat -> ksFormat.equals(ext)) + .findFirst(); + if (detectedType.isPresent()) return detectedType.get(); + } + + // Fallback to default JVM + return KeyStore.getDefaultType(); + } + private static class TruststoreCertificatesLoader { private Map trustedRootCerts = new HashMap<>(); diff --git a/testsuite/integration-arquillian/HOW-TO-RUN.md b/testsuite/integration-arquillian/HOW-TO-RUN.md index 99b47ad179..c0b89516ec 100644 --- a/testsuite/integration-arquillian/HOW-TO-RUN.md +++ b/testsuite/integration-arquillian/HOW-TO-RUN.md @@ -923,3 +923,25 @@ DefaultHostnameTest.java:226) when running these tests on your local machine. This happens when something on your machine or network is blocking DNS queries to [nip.io](https://nip.io) One possible workaround is to add a commonly used public dns server (e.g. 8.8.8.8 for google dns server) to your local networks dns configuration and run the tests. + +## FIPS 140-2 testing + +On the FIPS enabled platform with FIPS enabled OpenJDK 11, you can run this to test against Keycloak server on Quarkus +with FIPS 140.2 integration enabled +``` +mvn -B -f testsuite/integration-arquillian/pom.xml \ + clean install \ + -Pauth-server-quarkus,auth-server-fips140-2 \ + -Dcom.redhat.fips=false +``` +NOTE 1: The property `com.redhat.fips` is needed so that testsuite itself is executed in the JVM with FIPS disabled. However +most important part is that Keycloak itself is running on the JVM with FIPS enabled. You can check log from server startup and +there should be messages similar to those: +``` +2022-10-11 19:34:29,521 DEBUG [org.keycloak.common.crypto.CryptoIntegration] (main) Using the crypto provider: org.keycloak.crypto.fips.FIPS1402Provider +2022-10-11 19:34:31,072 TRACE [org.keycloak.common.crypto.CryptoIntegration] (main) Java security providers: [ + KC(BCFIPS version 1.000203) version 1.0 - class org.keycloak.crypto.fips.KeycloakFipsSecurityProvider, + BCFIPS version 1.000203 - class org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider, + BCJSSE version 1.001202 - class org.bouncycastle.jsse.provider.BouncyCastleJsseProvider, +] +``` diff --git a/testsuite/integration-arquillian/servers/auth-server/common/fips/kc.java.security b/testsuite/integration-arquillian/servers/auth-server/common/fips/kc.java.security new file mode 100644 index 0000000000..9267176d29 --- /dev/null +++ b/testsuite/integration-arquillian/servers/auth-server/common/fips/kc.java.security @@ -0,0 +1,51 @@ +# Configuration file just with the security properties, which are supposed to be overriden. The properties, which are not mentioned in this file, +# are inherited from the default java.security file bundled within the Java distribution. +# +# NOTE: Each property is specified 2 times. This is so the same file can be used on both FIPS based RHEL host (which uses "fips" prefixed properties by default) +# and the non-fips based (EG. when running the tests on GH actions) + +# +# List of providers and their preference orders (see above). Used on the host without FIPS (EG. when running the tests on GH actions) +# Uses only BouncyCastle FIPS providers to make sure to use only FIPS compliant cryptography. +# +security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider +security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider fips:BCFIPS +security.provider.3= + +# +# Security providers used when global crypto-policies are set to FIPS (Usually it is used when FIPS enabled on system/JVM level) +# +fips.provider.1=org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider +fips.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider fips:BCFIPS +fips.provider.3= + +# Commented this provider for now (and also other providers) as it uses lots of non-FIPS services. +# See https://access.redhat.com/documentation/en-us/openjdk/11/html-single/configuring_openjdk_11_on_rhel_with_fips/index#ref_openjdk-default-fips-configuration_openjdk +# fips.provider.2=SUN + +# +# Default keystore type. +# +keystore.type=PKCS12 +fips.keystore.type=PKCS12 + +# This is needed especially if we cannot add security provider "com.sun.net.ssl.internal.ssl.Provider BCFIPS" as a security provider. +# OpenJDK has "SunX509" as default algorithm, but that one is not supported by BCJSSE. So adding the Sun provider delegating to BCFIPS is needed (as above) +# or changing default algorithm as described here +ssl.KeyManagerFactory.algorithm=PKIX +fips.ssl.KeyManagerFactory.algorithm=PKIX + +ssl.TrustManagerFactory.algorithm=PKIX +fips.ssl.TrustManagerFactory.algorithm=PKIX + +# +# Controls compatibility mode for JKS and PKCS12 keystore types. +# +# When set to 'true', both JKS and PKCS12 keystore types support loading +# keystore files in either JKS or PKCS12 format. When set to 'false' the +# JKS keystore type supports loading only JKS keystore files and the PKCS12 +# keystore type supports loading only PKCS12 keystore files. +# +# This is set to false as BCFIPS providers don't support JKS +keystore.type.compat=false +fips.keystore.type.compat=false diff --git a/testsuite/integration-arquillian/servers/auth-server/common/fips/keycloak-fips.keystore.pkcs12 b/testsuite/integration-arquillian/servers/auth-server/common/fips/keycloak-fips.keystore.pkcs12 new file mode 100644 index 0000000000000000000000000000000000000000..450664a866eba9208dd6d1387c04691ec30005d5 GIT binary patch literal 2719 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 C3G`3^ literal 0 HcmV?d00001 diff --git a/testsuite/integration-arquillian/servers/auth-server/common/fips/keycloak-fips.truststore.pkcs12 b/testsuite/integration-arquillian/servers/auth-server/common/fips/keycloak-fips.truststore.pkcs12 new file mode 100644 index 0000000000000000000000000000000000000000..918f154b68295a33d14ed0f77ff2c6522ea70446 GIT binary patch literal 234529 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%0D~ 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

hhNngqSnM(wFz`G!KZw6m}Sy-1jk}8_on4#_1Ui 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 literal 0 HcmV?d00001 diff --git a/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml b/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml index d08838bef1..b761948438 100644 --- a/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml +++ b/testsuite/integration-arquillian/servers/auth-server/quarkus/pom.xml @@ -21,6 +21,7 @@ local ${project.parent.basedir}/../../tests/base/src/test/resources + disabled @@ -300,5 +301,68 @@ + + auth-server-fips140-2 + + enabled + + + + + org.keycloak + keycloak-crypto-fips1402 + + + + + + + maven-resources-plugin + + + copy-fips-pki-conf + process-resources + + copy-resources + + + ${auth.server.home}/conf + + + ${common.resources}/fips + + ** + + + + true + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-bcfips-deps + generate-resources + + copy-dependencies + + + ${auth.server.home}/lib/bootstrap + bc-fips,bctls-fips,bcpkix-fips + + + + + + + + + + \ No newline at end of file diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusConfiguration.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusConfiguration.java index 19b2c97c62..b93eafbeab 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusConfiguration.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusConfiguration.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import org.jboss.arquillian.container.spi.ConfigurationException; import org.jboss.arquillian.container.spi.client.container.ContainerConfiguration; import org.jboss.logging.Logger; +import org.keycloak.common.crypto.FipsMode; import org.keycloak.util.JsonSerialization; import java.io.IOException; @@ -23,6 +24,20 @@ public class KeycloakQuarkusConfiguration implements ContainerConfiguration { private int bindHttpPort = 8080; private int bindHttpsPortOffset = 0; private int bindHttpsPort = Integer.getInteger("auth.server.https.port", 8543); + + private String keystoreFile = System.getProperty("auth.server.keystore"); + + private String keystorePassword = System.getProperty("auth.server.keystore.password"); + + private String keystoreType = System.getProperty("auth.server.keystore.type"); + + + private String truststoreFile = System.getProperty("auth.server.truststore"); + + private String truststorePassword = System.getProperty("auth.server.truststore.password"); + + private String truststoreType = System.getProperty("auth.server.truststore.type"); + private int debugPort = -1; private Path providersPath = Paths.get(System.getProperty("auth.server.home")); private int startupTimeoutInSeconds = 300; @@ -34,6 +49,8 @@ public class KeycloakQuarkusConfiguration implements ContainerConfiguration { private boolean reaugmentBeforeStart; private String importFile = System.getProperty("migration.import.file.name"); + private FipsMode fipsMode = FipsMode.valueOf(System.getProperty("auth.server.fips.mode")); + @Override public void validate() throws ConfigurationException { int basePort = getBindHttpPort(); @@ -88,6 +105,54 @@ public class KeycloakQuarkusConfiguration implements ContainerConfiguration { this.bindHttpPort = bindHttpPort; } + public String getKeystoreFile() { + return keystoreFile; + } + + public void setKeystoreFile(String keystoreFile) { + this.keystoreFile = keystoreFile; + } + + public String getKeystorePassword() { + return keystorePassword; + } + + public void setKeystorePassword(String keystorePassword) { + this.keystorePassword = keystorePassword; + } + + public String getKeystoreType() { + return keystoreType; + } + + public void setKeystoreType(String keystoreType) { + this.keystoreType = keystoreType; + } + + public String getTruststoreFile() { + return truststoreFile; + } + + public void setTruststoreFile(String truststoreFile) { + this.truststoreFile = truststoreFile; + } + + public String getTruststorePassword() { + return truststorePassword; + } + + public void setTruststorePassword(String truststorePassword) { + this.truststorePassword = truststorePassword; + } + + public String getTruststoreType() { + return truststoreType; + } + + public void setTruststoreType(String truststoreType) { + this.truststoreType = truststoreType; + } + public Path getProvidersPath() { return providersPath; } @@ -140,6 +205,14 @@ public class KeycloakQuarkusConfiguration implements ContainerConfiguration { return javaOpts; } + public void appendJavaOpts(String javaOpts) { + if (javaOpts == null) { + setJavaOpts(javaOpts); + } else { + setJavaOpts(this.javaOpts + " " + javaOpts); + } + } + public boolean isReaugmentBeforeStart() { return reaugmentBeforeStart; } @@ -163,4 +236,12 @@ public class KeycloakQuarkusConfiguration implements ContainerConfiguration { public void setImportFile(String importFile) { this.importFile = importFile; } + + public FipsMode getFipsMode() { + return fipsMode; + } + + public void setFipsMode(FipsMode fipsMode) { + this.fipsMode = fipsMode; + } } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusServerDeployableContainer.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusServerDeployableContainer.java index 1b259d5b70..ef3527c52e 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusServerDeployableContainer.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusServerDeployableContainer.java @@ -47,6 +47,7 @@ import org.jboss.logging.Logger; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.exporter.ZipExporter; import org.jboss.shrinkwrap.descriptor.api.Descriptor; +import org.keycloak.common.crypto.FipsMode; import org.keycloak.testsuite.arquillian.SuiteContext; import org.keycloak.testsuite.model.StoreProvider; @@ -227,8 +228,10 @@ public class KeycloakQuarkusServerDeployableContainer implements DeployableConta final Supplier shouldSetUpDb = () -> !restart.get() && !storeProvider.equals(StoreProvider.DEFAULT); final Supplier getClusterConfig = () -> System.getProperty("auth.server.quarkus.cluster.config", "local"); + log.debugf("FIPS Mode: %s", configuration.getFipsMode()); + // only run build during first execution of the server (if the DB is specified), restarts or when running cluster tests - if (restart.get() || shouldSetUpDb.get() || "ha".equals(getClusterConfig.get())) { + if (restart.get() || shouldSetUpDb.get() || "ha".equals(getClusterConfig.get()) || configuration.getFipsMode() != FipsMode.disabled) { commands.removeIf("--optimized"::equals); commands.add("--http-relative-path=/auth"); @@ -241,6 +244,10 @@ public class KeycloakQuarkusServerDeployableContainer implements DeployableConta commands.add("--cache-config-file=cluster-" + cacheMode + ".xml"); } } + + if (configuration.getFipsMode() != FipsMode.disabled) { + addFipsOptions(commands); + } } addStorageOptions(storeProvider, commands); @@ -257,6 +264,26 @@ public class KeycloakQuarkusServerDeployableContainer implements DeployableConta storeProvider.addStoreOptions(commands); } + private void addFipsOptions(List commands) { + commands.add("--fips-mode=" + configuration.getFipsMode().toString()); + + log.debugf("Keystore file: %s, keystore type: %s, truststore file: %s, truststore type: %s", + configuration.getKeystoreFile(), configuration.getKeystoreType(), + configuration.getTruststoreFile(), configuration.getTruststoreType()); + commands.add("--https-key-store-file=" + configuration.getKeystoreFile()); + commands.add("--https-key-store-type=" + configuration.getKeystoreType()); + commands.add("--https-key-store-password=" + configuration.getKeystorePassword()); + commands.add("--https-trust-store-file=" + configuration.getTruststoreFile()); + commands.add("--https-trust-store-type=" + configuration.getTruststoreType()); + commands.add("--https-trust-store-password=" + configuration.getTruststorePassword()); + commands.add("--spi-truststore-file-file=" + configuration.getTruststoreFile()); + commands.add("--spi-truststore-file-password=" + configuration.getTruststorePassword()); + commands.add("--spi-truststore-file-type=" + configuration.getTruststoreType()); + commands.add("--log-level=INFO,org.keycloak.common.crypto:TRACE,org.keycloak.crypto:TRACE,org.keycloak.truststore:TRACE"); + + configuration.appendJavaOpts("-Djava.security.properties=" + System.getProperty("auth.server.java.security.file")); + } + private void waitForReadiness() throws MalformedURLException, LifecycleException { SuiteContext suiteContext = this.suiteContext.get(); //TODO: not sure if the best endpoint but it makes sure that everything is properly initialized. Once we have diff --git a/testsuite/integration-arquillian/tests/pom.xml b/testsuite/integration-arquillian/tests/pom.xml index 4d62d9f58a..6bbfc6897b 100755 --- a/testsuite/integration-arquillian/tests/pom.xml +++ b/testsuite/integration-arquillian/tests/pom.xml @@ -73,8 +73,10 @@ org.jboss.as.arquillian.container.managed.ManagedDeployableContainer ${auth.server.config.dir}/keycloak.truststore secret + jks ${auth.server.config.dir}/keycloak.jks secret + jks integration-arquillian-servers-auth-server-${auth.server} @@ -260,6 +262,7 @@ false default local + disabled @@ -522,8 +525,11 @@ ${auth.server.jboss.jvm.debug.args} ${auth.server.truststore} ${auth.server.truststore.password} + ${auth.server.truststore.type} ${auth.server.keystore} ${auth.server.keystore.password} + ${auth.server.keystore.type} + ${auth.server.java.security.file} ${auth.server.jvm.args.extra} ${auth.server.profile} @@ -676,6 +682,10 @@ ${keycloak.connectionsJpa.user} ${keycloak.connectionsJpa.password} + + ${auth.server.fips.mode} + ${auth.server.fips.keystore.type} +