RoleCheckerBean.ejb Sample

This topic inludes the source code for the RoleCheckerBean.ejb Sample.

Sample Location

This sample is located in the following directory in your WebLogic Workshop installation:

BEA_HOME/weblogic81/samples/workshop/SamplesApp/EJBs/security/

Sample Source Code


01 package security;
02 
03 import javax.ejb.*;
04 import javax.naming.InitialContext;
05 import javax.naming.NamingException;
06 import weblogic.ejb.*;
07 
08 /**
09  * @ejbgen:session run-as-identity-principal="weblogic" default-transaction="Supports" use-caller-identity="false" run-as="engineer"
10  *   ejb-name = "RoleChecker"
11  *
12  * @ejbgen:jndi-name local="ejb.RoleCheckerLocalHome"
13  * @ejbgen:file-generation remote-class="false" remote-class-name = "RoleChecker" remote-home="false" remote-home-name = "RoleCheckerHome" local-class="true" local-class-name = "RoleCheckerLocal" local-home="true" local-home-name = "RoleCheckerLocalHome"
14  
15  * @ejbgen:ejb-local-ref link="Invoked"
16  
17  * @ejbgen:security-role-ref role-link="manager" role-name="manager"
18  * @ejbgen:security-role-ref role-link="engineer" role-name="engineer"
19  * @ejbgen:role-mapping global-role="true" role-name="manager"
20  * @ejbgen:role-mapping principals="weblogic, engineer"  role-name="engineer"
21  * @ejbgen:role-mapping principals="ceo" role-name="ceo"
22  */
23 public class RoleCheckerBean
24   extends GenericSessionBean
25   implements SessionBean
26 {
27   private javax.ejb.SessionContext context;
28   private InvokedLocalHome invokedHome;
29    
30   public void ejbCreate() {
31       try {
32          javax.naming.Context ic = new InitialContext();
33          invokedHome = (InvokedLocalHome)ic.lookup("java:comp/env/ejb/Invoked");
34       
35       catch (NamingException ne) {
36          throw new EJBException(ne);
37       }
38   }
39 
40   public void setSessionContext(SessionContext ctx) {
41      context = ctx;
42   }
43 
44     /**
45      * @ejbgen:local-method
46      */
47     public String discoverCallerRole()
48     {
49         
50         if(context.isCallerInRole("manager")) {
51             return "You are a manager";
52         }
53         else if(context.isCallerInRole("engineer")) {
54             return "You are an engineer";
55         }
56         else {
57             return "I cannot determine your security role";
58         }
59     }
60 
61     /**
62      * @ejbgen:local-method roles="ceo"
63      */
64     public String ceoOnly()
65     {
66         return "You are a CEO";
67     }
68 
69     /**
70      * @ejbgen:local-method roles="manager"
71      */
72     public String managerOnly()
73     {
74         return "You are a manager";
75     }
76 
77     /**
78      * @ejbgen:local-method
79      */
80     public String discoverRoleCheckersRole()
81     {
82         InvokedLocal invokedEJB;
83         
84         try {
85             invokedEJB = invokedHome.create();
86             return invokedEJB.discoverRole();
87         }
88         catch(CreateException ce) {
89             return "invokedEJB instance could not be created";
90         }
91 
92         
93     }
94 }
95