1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstarts.ejb.multi.server.app;
18
19 import java.security.Principal;
20
21 import javax.annotation.Resource;
22 import javax.annotation.security.RolesAllowed;
23 import javax.ejb.SessionContext;
24 import javax.ejb.Stateless;
25 import org.jboss.as.quickstarts.ejb.multi.server.app.AppTwo;
26 import org.jboss.ejb3.annotation.SecurityDomain;
27 import org.jboss.logging.Logger;
28
29
30
31
32
33
34
35 @SecurityDomain(value = "other")
36 public @Stateless class AppTwoBean implements AppTwo {
37 private static final Logger LOGGER = Logger.getLogger(AppTwoBean.class);
38
39 @Resource
40 SessionContext context;
41
42 @Override
43 public String getJBossNodeName() {
44 return System.getProperty("jboss.node.name");
45 }
46
47 @Override
48 public String invoke(String text) {
49 Principal caller = context.getCallerPrincipal();
50 LOGGER.info("[" + caller.getName() + "] " + text);
51 return "app2[" + caller.getName() + "]@" + getJBossNodeName();
52 }
53
54 @Override
55 @RolesAllowed({ "AppTwo", "Intern" })
56 public String invokeSecured(String text) {
57 Principal caller = context.getCallerPrincipal();
58 LOGGER.info("Secured invocation [" + caller.getName() + "] " + text);
59 LOGGER.info("Is in Role AppTwo=" + context.isCallerInRole("AppTwo") + " Intern=" + context.isCallerInRole("Intern"));
60 return "app2[" + caller.getName() + "]@" + getJBossNodeName();
61 }
62
63 }