blob: 0bfba159546410bee34220908f66ec580839bb55 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*
*/
package org.apache.kerby.kerberos.kerb;
import org.apache.kerby.kerberos.kerb.common.Krb5Parser;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
/**
* A unit test for Krb5Parser.
* Checked the number of sections, the name of
* sections, and contents of a section.
*/
public class Krb5ParserTest {
@Test
public void test() throws IOException {
URL url = Krb5ParserTest.class.getResource("/krb5.conf");
Krb5Parser k = new Krb5Parser(new File(url.getFile()));
k.load();
assertThat(k.getSections()).hasSize(5);
assertThat(k.getSections()).containsOnly("include", "libdefaults", "realms", "domain_realm", "logging");
// include
assertThat(k.getSection("include")).isEqualTo("/etc");
// [libdefaults] section
assertThat(k.getSection("libdefaults")).isInstanceOf(Map.class);
assertThat((Map<String, Object>) k.getSection("libdefaults")).hasSize(14);
assertThat(k.getSection("libdefaults", "default_realm")).isEqualTo("KRB.COM");
assertThat(k.getSection("libdefaults", "dns_lookup_kdc")).isEqualTo("false");
assertThat(k.getSection("libdefaults", "default_tkt_enctypes")).isEqualTo("des-cbc-crc");
// [realms] section
assertThat(k.getSection("realms")).isInstanceOf(Map.class);
assertThat((Map<String, Object>) k.getSection("realms")).hasSize(3);
assertThat(k.getSection("realms", "ATHENA.MIT.EDU")).isInstanceOf(Map.class);
assertThat((Map<String, Object>) k.getSection("realms", "ATHENA.MIT.EDU")).hasSize(4);
assertThat(k.getSection("realms", "ATHENA.MIT.EDU", "admin_server")).isEqualTo("KERBEROS.MIT.EDU");
assertThat(k.getSection("realms", "ATHENA.MIT.EDU", "v4_instance_convert")).isInstanceOf(Map.class);
assertThat(k.getSection("realms", "ATHENA.MIT.EDU", "v4_instance_convert", "mit")).isEqualTo("mit.edu");
assertThat(k.getSection("realms", "ATHENA.MIT.EDU", "auth_to_local")).isInstanceOf(List.class);
assertThat((List) k.getSection("realms", "ATHENA.MIT.EDU", "auth_to_local")).hasSize(4);
assertThat(k.getSection("realms", "ANDREW.CMU.EDU")).isInstanceOf(Map.class);
assertThat((Map<String, Object>) k.getSection("realms", "ANDREW.CMU.EDU")).hasSize(1);
assertThat(k.getSection("realms", "ANDREW.CMU.EDU", "admin_server")).isEqualTo("vice28.fs.andrew.cmu.edu");
assertThat(k.getSection("realms", "GNU.ORG")).isInstanceOf(Map.class);
assertThat((Map<String, Object>) k.getSection("realms", "GNU.ORG")).hasSize(3);
assertThat(k.getSection("realms", "GNU.ORG", "admin_server")).isEqualTo("kerberos.gnu.org");
// [domain_realm] section
assertThat(k.getSection("domain_realm")).isInstanceOf(Map.class);
assertThat((Map<String, Object>) k.getSection("domain_realm")).hasSize(5);
assertThat(k.getSection("domain_realm", ".mit.edu")).isEqualTo("ATHENA.MIT.EDU");
assertThat(k.getSection("domain_realm", "mit.edu")).isEqualTo("ATHENA.MIT.EDU");
// [logging] section
assertThat(k.getSection("logging")).isInstanceOf(Map.class);
assertThat((Map<String, Object>) k.getSection("logging")).hasSize(3);
assertThat(k.getSection("logging", "default")).isEqualTo("FILE:/var/log/krb5libs.log");
}
}