From 4a51a8f96715ffb2a42189b93b9fa91b453b8530 Mon Sep 17 00:00:00 2001 From: sg481n Date: Thu, 3 Aug 2017 17:39:12 -0400 Subject:  [AAF-21] Initial code import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ia1dd196befd061f6ba0c2be6bf4456a30ea50f97 Signed-off-by: sg481n --- .../java/com/att/cadi/lur/test/JU_LocalLur.java | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 core/src/test/java/com/att/cadi/lur/test/JU_LocalLur.java (limited to 'core/src/test/java/com/att/cadi/lur/test/JU_LocalLur.java') diff --git a/core/src/test/java/com/att/cadi/lur/test/JU_LocalLur.java b/core/src/test/java/com/att/cadi/lur/test/JU_LocalLur.java new file mode 100644 index 0000000..a4ada86 --- /dev/null +++ b/core/src/test/java/com/att/cadi/lur/test/JU_LocalLur.java @@ -0,0 +1,102 @@ +/******************************************************************************* + * ============LICENSE_START==================================================== + * * org.onap.aai + * * =========================================================================== + * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * * Copyright © 2017 Amdocs + * * =========================================================================== + * * 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. + * * ============LICENSE_END==================================================== + * * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * * + ******************************************************************************/ +package com.att.cadi.lur.test; + +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertTrue; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.security.Principal; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +import org.junit.Test; + +import com.att.cadi.CredVal.Type; +import com.att.cadi.Lur; +import com.att.cadi.Permission; +import com.att.cadi.PropAccess; +import com.att.cadi.Symm; +import com.att.cadi.config.UsersDump; +import com.att.cadi.lur.LocalLur; +import com.att.cadi.lur.LocalPermission; + +public class JU_LocalLur { + + @Test + public void test() throws IOException { + Symm symmetric = Symm.baseCrypt().obtain(); + LocalLur up; + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + baos.write(Symm.ENC.getBytes()); + symmetric.enpass("", baos); + PropAccess ta = new PropAccess(); + Lur ml = up = new LocalLur(ta,"myname:groupA,groupB","admin:myname,yourname;suser:hisname,hername,m1234%"+baos.toString()); + + Permission admin = new LocalPermission("admin"); + Permission suser = new LocalPermission("suser"); + + // Check User fish + assertTrue(ml.fish(new JUPrincipal("myname"),admin)); + assertTrue(ml.fish(new JUPrincipal("hisname"),admin)); + assertFalse(ml.fish(new JUPrincipal("noname"),admin)); + assertTrue(ml.fish(new JUPrincipal("itsname"),suser)); + assertTrue(ml.fish(new JUPrincipal("hername"),suser)); + assertFalse(ml.fish(new JUPrincipal("myname"),suser)); + + + // Check validate password + assertTrue(up.validate("m1234",Type.PASSWORD, "".getBytes())); + assertFalse(up.validate("m1234",Type.PASSWORD, "badPass".getBytes())); + + // Check fishAll + Set set = new TreeSet(); + List perms = new ArrayList(); + ml.fishAll(new JUPrincipal("myname"), perms); + for(Permission p : perms) { + set.add(p.getKey()); + } + assertEquals("[admin, groupA, groupB]",set.toString()); + UsersDump.write(System.out, up); + System.out.flush(); + + } + + // Simplistic Principal for testing purposes + private static class JUPrincipal implements Principal { + private String name; + public JUPrincipal(String name) { + this.name = name; + } +// @Override + public String getName() { + return name; + } + } + +} -- cgit 1.2.3-korg