| 1 22 package org.jboss.test.security.test; 23 24 import java.security.Permissions ; 25 import javax.security.jacc.WebResourcePermission ; 26 27 import junit.framework.TestCase; 28 29 34 public class WebResourcePermissionUnitTestCase 35 extends TestCase 36 { 37 38 public WebResourcePermissionUnitTestCase(String name) 39 { 40 super(name); 41 } 42 43 public void testCtor2() throws Exception  44 { 45 String nullActions = null; 46 WebResourcePermission p = new WebResourcePermission ("/", nullActions); 47 String actions = p.getActions(); 48 assertTrue("actions("+actions+") == null", actions == null); 49 50 p = new WebResourcePermission ("", nullActions); 51 actions = p.getActions(); 52 assertTrue("actions("+actions+") == null", actions == null); 53 54 String [] emtpy = {}; 55 p = new WebResourcePermission ("/", emtpy); 56 actions = p.getActions(); 57 assertTrue("actions("+actions+") == null", actions == null); 58 59 p = new WebResourcePermission ("/", "POST"); 60 actions = p.getActions(); 61 assertTrue("actions("+actions+") == POST", actions.equals("POST")); 62 63 p = new WebResourcePermission ("/", "GET,POST,PUT,DELETE,HEAD,OPTIONS,TRACE"); 64 actions = p.getActions(); 65 assertTrue("actions("+actions+") == null", actions == null); 66 67 p = new WebResourcePermission ("/", "TRACE,GET,DELETE"); 68 actions = p.getActions(); 69 assertTrue("actions("+actions+") == DELETE,GET,TRACE", 70 actions.equals("DELETE,GET,TRACE")); 71 } 72 73 public void testImpliesPermission() throws Exception  74 { 75 String nullActions = null; 76 WebResourcePermission p0 = new WebResourcePermission ("/", nullActions); 77 WebResourcePermission p1 = new WebResourcePermission ("/", "GET"); 78 assertTrue("p0.implies(p1)", p0.implies(p1)); 79 80 p0 = new WebResourcePermission ("/", ""); 81 assertTrue("p0.implies(p1)", p0.implies(p1)); 82 83 p1 = new WebResourcePermission ("", "GET"); 84 assertTrue("p0.implies(p1)", p0.implies(p1)); 85 86 String [] emtpy = {}; 87 p0 = new WebResourcePermission ("/", emtpy); 88 assertTrue("p0.implies(p1)", p0.implies(p1)); 89 90 p0 = new WebResourcePermission ("/", "GET"); 91 assertTrue("p0.implies(p1)", p0.implies(p1)); 92 93 p0 = new WebResourcePermission ("/*", nullActions); 94 p1 = new WebResourcePermission ("/any", "GET"); 95 assertTrue("p0.implies(p1)", p0.implies(p1)); 96 97 p0 = new WebResourcePermission ("/*", "GET"); 98 p1 = new WebResourcePermission ("/any", "GET"); 99 assertTrue("p0.implies(p1)", p0.implies(p1)); 100 101 p0 = new WebResourcePermission ("/any/*", "GET"); 102 p1 = new WebResourcePermission ("/any", "GET"); 103 assertTrue("p0.implies(p1)", p0.implies(p1)); 104 105 p1 = new WebResourcePermission ("/any/", "GET"); 106 assertTrue("p0.implies(p1)", p0.implies(p1)); 107 108 p0 = new WebResourcePermission ("/any/more/*", "GET"); 109 p1 = new WebResourcePermission ("/any/more/andsome", "GET"); 110 assertTrue("p0.implies(p1)", p0.implies(p1)); 111 112 p0 = new WebResourcePermission ("*.jsp", "POST,GET"); 113 p1 = new WebResourcePermission ("/snoop.jsp", "GET,POST"); 114 assertTrue("p0.implies(p1)", p0.implies(p1)); 115 116 p0 = new WebResourcePermission ("*.jsp", "POST,GET,TRACE"); 117 assertTrue("p0.implies(p1)", p0.implies(p1)); 118 119 p0 = new WebResourcePermission ("/snoop.jsp", "POST,GET,TRACE"); 120 assertTrue("p0.implies(p1)", p0.implies(p1)); 121 122 p0 = new WebResourcePermission ("/:/secured.jsp:/unchecked.jsp:/excluded.jsp:/sslprotected.jsp", "POST,GET"); 123 p1 = new WebResourcePermission ("/:/secured.jsp:/excluded.jsp:/sslprotected.jsp:/unchecked.jsp", "GET,POST"); 124 assertTrue("p0.implies(p1)", p0.implies(p1)); 125 126 p0 = new WebResourcePermission ("/restricted/*", "DELETE,GET,HEAD,POST,PUT"); 127 p1 = new WebResourcePermission ("/restricted/SecureServlet", "GET"); 128 assertTrue("p0.implies(p1)", p0.implies(p1)); 129 } 130 131 public void testNotImpliesPermission() throws Exception  132 { 133 String nullActions = null; 134 WebResourcePermission p0 = new WebResourcePermission ("/", "GET"); 135 WebResourcePermission p1 = new WebResourcePermission ("/", nullActions); 136 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 137 138 p1 = new WebResourcePermission ("/", "POST"); 139 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 140 141 p1 = new WebResourcePermission ("", "GET"); 142 assertTrue("! p1.implies(p0)", p1.implies(p0) == false); 143 144 p1 = new WebResourcePermission ("/", "GET,POST"); 145 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 146 147 p0 = new WebResourcePermission ("/any/*", "GET"); 148 p1 = new WebResourcePermission ("/anymore", "GET"); 149 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 150 151 p1 = new WebResourcePermission ("/anyx", "GET"); 152 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 153 154 p1 = new WebResourcePermission ("/any/more", "GET,POST"); 155 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 156 157 p0 = new WebResourcePermission ("/*", "GET"); 158 p1 = new WebResourcePermission ("/anyx", "GET,POST"); 159 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 160 161 p0 = new WebResourcePermission ("*.jsp", "GET"); 162 p1 = new WebResourcePermission ("/", "GET"); 163 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 164 165 p0 = new WebResourcePermission ("*.jsp", "GET"); 166 p1 = new WebResourcePermission ("/*", "GET"); 167 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 168 169 p0 = new WebResourcePermission ("*.jsp", "GET"); 170 p1 = new WebResourcePermission ("/jsp", "GET"); 171 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 172 173 p0 = new WebResourcePermission ("*.jsp", "GET"); 174 p1 = new WebResourcePermission ("/snoop,jsp", "GET"); 175 assertTrue("! p0.implies(p1)", p0.implies(p1) == false); 176 } 177 178 public void testBestMatch() throws Exception  179 { 180 WebResourcePermission cp = new WebResourcePermission ("/restricted/not", "GET"); 181 WebResourcePermission excluded = new WebResourcePermission ("/restricted/*", ""); 182 WebResourcePermission unchecked = new WebResourcePermission ("/restricted/not/*", ""); 183 assertTrue("cp is excluded", excluded.implies(cp)); 184 assertTrue("cp is unchecked", unchecked.implies(cp)); 185 186 assertTrue("unchecked is excluded", excluded.implies(unchecked)); 187 assertTrue("excluded is NOT unchecked", unchecked.implies(excluded) == false); 188 189 Permissions excludedPC = new Permissions (); 190 excludedPC.add(new WebResourcePermission ("/restricted/*", "")); 191 excludedPC.add(new WebResourcePermission ("/restricted/get-only/*", "DELETE,HEAD,OPTIONS,POST,PUT,TRACE")); 192 excludedPC.add(new WebResourcePermission ("/restricted/post-only/*", "DELETE,HEAD,OPTIONS,POST,PUT,TRACE")); 193 excludedPC.add(new WebResourcePermission ("/restricted/put-only/excluded/*", "")); 194 excludedPC.add(new WebResourcePermission ("/restricted/get-only/excluded/*", "")); 195 excludedPC.add(new WebResourcePermission ("/excluded/*", "")); 196 197 Permissions uncheckedPC = new Permissions (); 198 uncheckedPC.add(new WebResourcePermission ("/unchecked/*", "")); 199 uncheckedPC.add(new WebResourcePermission ("/restricted/post-only/*", "GET")); 200 uncheckedPC.add(new WebResourcePermission ("/restricted/not/*", "")); 201 uncheckedPC.add(new WebResourcePermission ("/unchecked/*:/restricted/not/*:/restricted/*:/restricted/put-only/excluded/*:/restricted/get-only/excluded/*:/restricted/any/*:/restricted/post-only/*:/restricted/get-only/*:/excluded/*", "")); 202 203 assertTrue("unchecked is in excludedPC", excludedPC.implies(unchecked)); 204 assertTrue("excluded is NOT in uncheckedPC", uncheckedPC.implies(excluded) == false); 205 206 } 207 208 public void testQualifiedMatch() 209 { 210 WebResourcePermission p0 = new WebResourcePermission ("/restricted/*:/restricted/any/excluded/*:/restricted/not/*", ""); 211 WebResourcePermission p1 = new WebResourcePermission ("/restricted/not", "GET"); 212 assertFalse("/restricted/not GET is NOT implied", p0.implies(p1)); 213 } 214 215 public void testQualifiedPatterns() 216 { 217 try 218 { 219 222 WebResourcePermission p = new WebResourcePermission ("/:/*", ""); 223 fail("Should not have been able to use a pattern with matching qualifiying pattern"); 224 } 225 catch(IllegalArgumentException e) 226 { 227 } 229 230 try 231 { 232 237 WebResourcePermission p = new WebResourcePermission ("/*:*.ext", ""); 238 fail("Should not have been able to use a pattern with extension qualifiying pattern"); 239 } 240 catch(IllegalArgumentException e) 241 { 242 } 244 245 try 246 { 247 251 WebResourcePermission p = new WebResourcePermission ("*.ext:*.ext2", ""); 252 fail("Should not have been able to use an extension in qualifiying pattern"); 253 } 254 catch(IllegalArgumentException e) 255 { 256 } 258 259 try 260 { 261 265 WebResourcePermission p0 = new WebResourcePermission ("/:/", ""); 266 fail("Should not have been able to use the default pattern in qualifiying pattern"); 267 } 268 catch(IllegalArgumentException e) 269 { 270 } 272 273 try 274 { 275 278 WebResourcePermission p0 = new WebResourcePermission ("/exact:/*", ""); 279 fail("Should not have been able to use a qualifiying pattern"); 280 } 281 catch(IllegalArgumentException e) 282 { 283 } 285 } 286 } 287 | Popular Tags |