This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch karaf-4.2.x
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/karaf-4.2.x by this push:
     new 31c43c5  Remove GSSAPILdapLoginModuleTest failing with latest JDK 
(including on Jenkins)
     new 4963d4c  Merge pull request #1316 from jbonofre/BUILD
31c43c5 is described below

commit 31c43c548bd7374bb8c4035488985a1a31f57765
Author: jbonofre <jbono...@apache.org>
AuthorDate: Thu Mar 4 06:01:00 2021 +0100

    Remove GSSAPILdapLoginModuleTest failing with latest JDK (including on 
Jenkins)
---
 .../modules/ldap/GSSAPILdapLoginModuleTest.java    | 314 ---------------------
 1 file changed, 314 deletions(-)

diff --git 
a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
 
b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
deleted file mode 100644
index 9d049d8..0000000
--- 
a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/GSSAPILdapLoginModuleTest.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *  under the License.
- */
-package org.apache.karaf.jaas.modules.ldap;
-
-import static org.apache.karaf.jaas.modules.ldap.LdapPropsUpdater.ldapProps;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.IOException;
-import java.security.Principal;
-import java.util.Collections;
-
-import javax.security.auth.Subject;
-import javax.security.auth.kerberos.KerberosPrincipal;
-import javax.security.auth.kerberos.KerberosTicket;
-import javax.security.auth.login.LoginException;
-
-import org.apache.directory.api.ldap.model.constants.SupportedSaslMechanisms;
-import org.apache.directory.api.ldap.model.entry.DefaultEntry;
-import org.apache.directory.api.ldap.model.entry.Entry;
-import org.apache.directory.api.ldap.model.exception.LdapException;
-import org.apache.directory.server.annotations.CreateKdcServer;
-import org.apache.directory.server.annotations.CreateLdapServer;
-import org.apache.directory.server.annotations.CreateTransport;
-import org.apache.directory.server.annotations.SaslMechanism;
-import org.apache.directory.server.core.annotations.ApplyLdifs;
-import org.apache.directory.server.core.annotations.ContextEntry;
-import org.apache.directory.server.core.annotations.CreateDS;
-import org.apache.directory.server.core.annotations.CreateIndex;
-import org.apache.directory.server.core.annotations.CreatePartition;
-import org.apache.directory.server.core.integ.FrameworkRunner;
-import org.apache.directory.server.core.kerberos.KeyDerivationInterceptor;
-import org.apache.directory.server.kerberos.kdc.KerberosTestUtils;
-import 
org.apache.directory.server.ldap.handlers.sasl.cramMD5.CramMd5MechanismHandler;
-import 
org.apache.directory.server.ldap.handlers.sasl.digestMD5.DigestMd5MechanismHandler;
-import 
org.apache.directory.server.ldap.handlers.sasl.gssapi.GssapiMechanismHandler;
-import 
org.apache.directory.server.ldap.handlers.sasl.ntlm.NtlmMechanismHandler;
-import 
org.apache.directory.server.ldap.handlers.sasl.plain.PlainMechanismHandler;
-import org.apache.directory.server.protocol.shared.transport.TcpTransport;
-import org.apache.directory.server.protocol.shared.transport.Transport;
-import org.apache.directory.shared.kerberos.codec.types.EncryptionType;
-import org.apache.directory.shared.kerberos.crypto.checksum.ChecksumType;
-import org.apache.felix.utils.properties.Properties;
-import org.apache.karaf.jaas.boot.principal.RolePrincipal;
-import org.apache.karaf.jaas.boot.principal.UserPrincipal;
-import org.apache.karaf.jaas.modules.NamePasswordCallbackHandler;
-import org.apache.karaf.jaas.modules.krb5.KarafKerberosITest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(FrameworkRunner.class)
-@CreateDS(name = "GSSAPILdapLoginModuleTest-class",
-        partitions =
-                {
-                        @CreatePartition(
-                                name = "example",
-                                suffix = "dc=example,dc=com",
-                                contextEntry = @ContextEntry(
-                                        entryLdif =
-                                                "dn: dc=example,dc=com\n" +
-                                                        "dc: example\n" +
-                                                        "objectClass: top\n" +
-                                                        "objectClass: 
domain\n\n"),
-                                indexes =
-                                        {
-                                                @CreateIndex(attribute = 
"objectClass"),
-                                                @CreateIndex(attribute = "dc"),
-                                                @CreateIndex(attribute = "ou")
-                                        })
-                },
-        additionalInterceptors =
-                {
-                        KeyDerivationInterceptor.class
-                })
-@CreateLdapServer(
-        transports =
-                {
-                        @CreateTransport(protocol = "LDAP")
-                },
-        saslHost = "localhost",
-        saslPrincipal = "ldap/localh...@example.com",
-        saslMechanisms =
-                {
-                        @SaslMechanism(name = SupportedSaslMechanisms.PLAIN, 
implClass = PlainMechanismHandler.class),
-                        @SaslMechanism(name = 
SupportedSaslMechanisms.CRAM_MD5, implClass = CramMd5MechanismHandler.class),
-                        @SaslMechanism(name = 
SupportedSaslMechanisms.DIGEST_MD5, implClass = 
DigestMd5MechanismHandler.class),
-                        @SaslMechanism(name = SupportedSaslMechanisms.GSSAPI, 
implClass = GssapiMechanismHandler.class),
-                        @SaslMechanism(name = SupportedSaslMechanisms.NTLM, 
implClass = NtlmMechanismHandler.class),
-                        @SaslMechanism(name = 
SupportedSaslMechanisms.GSS_SPNEGO, implClass = NtlmMechanismHandler.class)
-                })
-@CreateKdcServer(
-        transports =
-                {
-                        @CreateTransport(protocol = "UDP", port = 6088),
-                        @CreateTransport(protocol = "TCP", port = 6088)
-                })
-@ApplyLdifs({
-        "dn: ou=users,dc=example,dc=com",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "ou: users",
-
-        "dn: ou=groups,dc=example,dc=com",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "ou: groups",
-
-        "dn: cn=admin,ou=groups,dc=example,dc=com",
-        "objectClass: top",
-        "objectClass: groupOfNames",
-        "cn: admin",
-        "member: uid=hnelson,ou=users,dc=example,dc=com"
-})
-public class GSSAPILdapLoginModuleTest extends KarafKerberosITest {
-
-    @Before
-    public void setUp() throws Exception {
-        super.setUp();
-
-        // Set up a partition for EXAMPLE.COM and add user and service 
principals to test authentication with.
-        KerberosTestUtils.fixServicePrincipalName(
-                "ldap/" + KerberosTestUtils.getHostName() + "@EXAMPLE.COM", 
null, getLdapServer());
-        setupEnv(TcpTransport.class,
-                EncryptionType.AES128_CTS_HMAC_SHA1_96, 
ChecksumType.HMAC_SHA1_96_AES128);
-
-        kdcServer.getConfig().setPaEncTimestampRequired(false);
-
-        String basedir = System.getProperty("basedir");
-        if (basedir == null) {
-            basedir = new File(".").getCanonicalPath();
-        }
-        File config = new File(basedir + 
"/target/test-classes/org/apache/karaf/jaas/modules/ldap/gssapi.login.config");
-
-        System.setProperty("java.security.auth.login.config", 
config.toString());
-
-        ldapProps("org/apache/karaf/jaas/modules/ldap/gssapi.ldap.properties",
-                  GSSAPILdapLoginModuleTest::replacePortAndAddress);
-    }
-
-    public static String replacePortAndAddress(String line) {
-        return line.replaceAll("portno", "" + getLdapServer().getPort())
-            .replaceAll("address", KerberosTestUtils.getHostName());
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        LDAPCache.clear();
-        super.tearDown();
-    }
-
-    @Test
-    public void testSuccess() throws Exception {
-
-        Properties options = ldapLoginModuleOptions();
-        GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
-
-        Subject subject = new Subject();
-        module.initialize(subject, new NamePasswordCallbackHandler("hnelson", 
"secret"), null, options);
-
-        assertEquals("Precondition", 0, subject.getPrincipals().size());
-        assertTrue(module.login());
-        assertTrue(module.commit());
-
-        assertEquals(3, subject.getPrincipals().size());
-
-        boolean foundKrb5User = false;
-        boolean foundUser = false;
-        boolean foundRole = false;
-        boolean foundTicket = false;
-
-        for (Principal pr : subject.getPrincipals()) {
-            if (pr instanceof KerberosPrincipal) {
-                assertEquals("hnel...@example.com", pr.getName());
-                foundKrb5User = true;
-            } else if (pr instanceof UserPrincipal) {
-                assertEquals("hnelson", pr.getName());
-                foundUser = true;
-            } else if (pr instanceof RolePrincipal) {
-                assertEquals("admin", pr.getName());
-                foundRole = true;
-            }
-        }
-        for (Object crd : subject.getPrivateCredentials()) {
-            if (crd instanceof KerberosTicket) {
-                assertEquals("hnel...@example.com", ((KerberosTicket) 
crd).getClient().getName());
-                assertEquals("krbtgt/example....@example.com", 
((KerberosTicket) crd).getServer().getName());
-                foundTicket = true;
-                break;
-            }
-        }
-
-        assertTrue("Principals should contains kerberos user", foundKrb5User);
-        assertTrue("Principals should contains ldap user", foundUser);
-        assertTrue("Principals should contains ldap role", foundRole);
-        assertTrue("PricatePrincipals should contains kerberos ticket", 
foundTicket);
-
-        assertTrue(module.logout());
-        assertEquals("Principals should be gone as the user has logged out", 
0, subject.getPrincipals().size());
-    }
-
-    @Test(expected = LoginException.class)
-    public void testUsernameFailure() throws Exception {
-
-        Properties options = ldapLoginModuleOptions();
-        GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
-
-        Subject subject = new Subject();
-        module.initialize(subject, new NamePasswordCallbackHandler("hnelson0", 
"secret"), null, options);
-
-        assertEquals("Precondition", 0, subject.getPrincipals().size());
-        assertTrue(module.login()); // should throw LoginException
-    }
-
-    @Test(expected = LoginException.class)
-    public void testPasswordFailure() throws Exception {
-
-        Properties options = ldapLoginModuleOptions();
-        GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
-
-        Subject subject = new Subject();
-        module.initialize(subject, new NamePasswordCallbackHandler("hnelson", 
"secret0"), null, options);
-
-        assertEquals("Precondition", 0, subject.getPrincipals().size());
-        assertTrue(module.login());
-    }
-
-    @Test(expected = LoginException.class)
-    public void testUserNotFound() throws Exception {
-
-        Properties options = ldapLoginModuleOptions();
-        GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
-
-        Subject subject = new Subject();
-        module.initialize(subject, new NamePasswordCallbackHandler("test", 
"test"), null, options);
-
-        assertEquals("Precondition", 0, subject.getPrincipals().size());
-        assertFalse(module.login());
-    }
-
-    @Test(expected = LoginException.class)
-    public void testNoRealm() throws Exception {
-
-        Properties options = ldapLoginModuleOptions();
-        options.remove(GSSAPILdapLoginModule.REALM_PROPERTY);
-        GSSAPILdapLoginModule module = new GSSAPILdapLoginModule();
-
-        Subject subject = new Subject();
-        module.initialize(subject, new NamePasswordCallbackHandler("hnelson0", 
"secret"), null, options);
-
-        assertEquals("Precondition", 0, subject.getPrincipals().size());
-        assertTrue(module.login()); // should throw LoginException
-    }
-
-    protected void setupEnv(Class<? extends Transport> transport, 
EncryptionType encryptionType,
-                            ChecksumType checksumType)
-            throws Exception {
-        // create krb5.conf with proper encryption type
-        String krb5confPath = createKrb5Conf(checksumType, encryptionType, 
transport == TcpTransport.class);
-        System.setProperty("java.security.krb5.conf", krb5confPath);
-
-        // change encryption type in KDC
-        
kdcServer.getConfig().setEncryptionTypes(Collections.singleton(encryptionType));
-
-        // create principals
-        createPrincipal("uid=" + USER_UID, "Last", "admin",
-                USER_UID, USER_PASSWORD, USER_UID + "@" + REALM);
-
-        createPrincipal("uid=krbtgt", "KDC Service", "KDC Service",
-                "krbtgt", "secret", "krbtgt/" + REALM + "@" + REALM);
-
-        String servicePrincipal = LDAP_SERVICE_NAME + "/" + HOSTNAME + "@" + 
REALM;
-        createPrincipal("uid=ldap", "Service", "LDAP Service",
-                "ldap", "randall", servicePrincipal);
-    }
-
-    private void createPrincipal(String rdn, String sn, String cn,
-                                 String uid, String userPassword, String 
principalName) throws LdapException {
-        Entry entry = new DefaultEntry();
-        entry.setDn(rdn + "," + USERS_DN);
-        entry.add("objectClass", "top", "person", "inetOrgPerson", 
"krb5principal", "krb5kdcentry");
-        entry.add("cn", cn);
-        entry.add("sn", sn);
-        entry.add("uid", uid);
-        entry.add("userPassword", userPassword);
-        entry.add("krb5PrincipalName", principalName);
-        entry.add("krb5KeyVersionNumber", "0");
-        conn.add(entry);
-    }
-
-    protected Properties ldapLoginModuleOptions() throws IOException {
-        String basedir = System.getProperty("basedir");
-        if (basedir == null) {
-            basedir = new File(".").getCanonicalPath();
-        }
-        File file = new File(basedir + 
"/target/test-classes/org/apache/karaf/jaas/modules/ldap/gssapi.ldap.properties");
-        return new Properties(file);
-    }
-}

Reply via email to