KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > security > test > MissingMethodUnitTestCase


1 package org.jboss.test.security.test;
2
3 import org.jboss.test.JBossTestCase;
4 import org.jboss.test.security.interfaces.SubjectSessionHome;
5 import org.jboss.test.security.interfaces.SubjectSession;
6 import org.jboss.test.security.interfaces.CalledSession;
7 import org.jboss.test.security.interfaces.CalledSessionHome;
8 import org.jboss.security.SimplePrincipal;
9
10 import javax.naming.Context JavaDoc;
11 import javax.naming.InitialContext JavaDoc;
12 import javax.rmi.PortableRemoteObject JavaDoc;
13 import java.util.Properties JavaDoc;
14 import java.util.HashSet JavaDoc;
15 import java.rmi.AccessException JavaDoc;
16
17 import junit.framework.Test;
18
19 /** Tests missing-method-permissions-excluded-mode
20
21  @author Scott.Stark@jboss.org
22  @version $Revision: 41417 $
23  */

24 public class MissingMethodUnitTestCase
25    extends JBossTestCase
26 {
27    public MissingMethodUnitTestCase(String JavaDoc name)
28    {
29       super(name);
30    }
31
32    /** Test that methods without a method-permission behave as unchecked
33     */

34    public void testMissingIsUnchecked() throws Exception JavaDoc
35    {
36       log.debug("+++ testMissingIsUnchecked()");
37       Properties JavaDoc env = new Properties JavaDoc();
38       env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
39          "org.jboss.security.jndi.JndiLoginInitialContextFactory");
40       env.setProperty(Context.SECURITY_PRINCIPAL, "jduke");
41       env.setProperty(Context.SECURITY_CREDENTIALS, "theduke");
42       InitialContext JavaDoc ctx = new InitialContext JavaDoc(env);
43       Object JavaDoc obj = ctx.lookup("unchecked/MissingMethodBean");
44       obj = PortableRemoteObject.narrow(obj, CalledSessionHome.class);
45       CalledSessionHome home = (CalledSessionHome) obj;
46       log.debug("Found CalledSessionHome");
47       CalledSession bean = home.create();
48       log.debug("Created CalledSession");
49
50       // This should pass due to login role
51
bean.invokeEcho("testMissingIsUnchecked");
52       // This should pass due to unchecked for missing method-permission
53
bean.callEcho();
54       bean.remove();
55    }
56
57    /** Test that methods without a method-permission behave as excluded
58     */

59    public void testMissingIsExcluded() throws Exception JavaDoc
60    {
61       log.debug("+++ testMissingIsExcluded()");
62       Properties JavaDoc env = new Properties JavaDoc();
63       env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
64          "org.jboss.security.jndi.JndiLoginInitialContextFactory");
65       env.setProperty(Context.SECURITY_PRINCIPAL, "jduke");
66       env.setProperty(Context.SECURITY_CREDENTIALS, "theduke");
67       InitialContext JavaDoc ctx = new InitialContext JavaDoc(env);
68       Object JavaDoc obj = ctx.lookup("excluded/MissingMethodBean");
69       obj = PortableRemoteObject.narrow(obj, CalledSessionHome.class);
70       CalledSessionHome home = (CalledSessionHome) obj;
71       log.debug("Found CalledSessionHome");
72       CalledSession bean = home.create();
73       log.debug("Created CalledSession");
74
75       // This should pass due to login role
76
bean.invokeEcho("testMissingIsExcluded");
77       // This should faile due to excluded for missing method-permission
78
try
79       {
80          bean.callEcho();
81          fail("Was able to invoke callEcho");
82       }
83       catch(AccessException JavaDoc e)
84       {
85          log.debug("Failed with AccessException");
86       }
87       bean.remove();
88    }
89
90    public static Test suite() throws Exception JavaDoc
91    {
92       return JBossTestCase.getDeploySetup(MissingMethodUnitTestCase.class,
93          "missing-methods-excluded.jar,missing-methods-unchecked.jar");
94    }
95
96 }
97
Popular Tags