+ @Test\r
+ public void test1() throws IOException {\r
+ Symm symmetric = Symm.baseCrypt().obtain();\r
+ LocalLur up;\r
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();\r
+ baos.write(Symm.ENC.getBytes());\r
+ symmetric.enpass("<pass>", baos);\r
+ PropAccess ta = new PropAccess();\r
+ Lur ml = up = new LocalLur(ta,"myname:groupC,groupD","admin:myname,yourname;suser:hisname1,hername2,m1234%"+baos.toString());\r
+ \r
+ Permission admin = new LocalPermission("admin1");\r
+ Permission suser = new LocalPermission("suser1");\r
+ \r
+ // Check User fish\r
+ assertTrue(ml.fish(new JUPrincipal("myname1"),admin));\r
+ assertTrue(ml.fish(new JUPrincipal("hisname1"),admin));\r
+ assertFalse(ml.fish(new JUPrincipal("noname1"),admin));\r
+ assertTrue(ml.fish(new JUPrincipal("itsname1"),suser));\r
+ assertTrue(ml.fish(new JUPrincipal("hername1"),suser));\r
+ assertFalse(ml.fish(new JUPrincipal("myname1"),suser));\r
+ \r
+ \r
+ // Check validate password\r
+ assertTrue(up.validate("m1234",Type.PASSWORD, "<pass>".getBytes()));\r
+ assertFalse(up.validate("m1234",Type.PASSWORD, "badPass".getBytes()));\r
+ \r
+ // Check fishAll\r
+ Set<String> set = new TreeSet<String>();\r
+ List<Permission> perms = new ArrayList<Permission>();\r
+ ml.fishAll(new JUPrincipal("myname"), perms);\r
+ for(Permission p : perms) {\r
+ set.add(p.getKey());\r
+ }\r
+ assertEquals("[admin, groupA, groupB]",set.toString());\r
+ UsersDump.write(System.out, up);\r
+ System.out.flush();\r
+ \r
+ }\r
+ \r
+ // Simplistic Principal for testing purposes\r
+ private static class JUPrincipal2 implements Principal {\r
+ private String name;\r
+ public JUPrincipal2(String name) {\r
+ this.name = name;\r
+ }\r
+// @Override\r
+ public String getName() {\r
+ return name;\r
+ }\r
+ }\r
+\r
+ \r
+ \r