Anyone on this, please? It is critical for our application, as we need timers created with the TimerService to run as a specific role, and this is a show stopper.
Perhaps I should post this in the developers list? Luis Fernando Planella Gonzalez > Resending this mail, as It had attachments and was not published (at least > on nabble). > For the attachment, markmail did store the original post: > http://openejb.markmail.org/search/?q=type:users#query:type%3Ausers+page:1+ > mid:2n47ayknj2uhniku+state:results > > --- The original message --- > I'm trying to use @RunAs, however it does not work in tomcat + openejb. > Attached is a very simple example. > I was expecting the IndexServlet to print "Is admin? true", but it is > false. Either I'm missing something or there is a bug. > The code: > > --- The servlet --- > public class IndexServlet extends HttpServlet { > private static final long serialVersionUID = 1L; > > @EJB > private RunAsService runAsService; > > protected void doGet( > HttpServletRequest request, > HttpServletResponse response) > throws ServletException, IOException { > > response.setContentType("text/plain"); > PrintWriter out = response.getWriter(); > out.println("Is admin? " + runAsService.isAdmin()); > response.flushBuffer(); > } > > } > > --- The EJB interface --- > public interface RunAsService { > > boolean isAdmin(); > > } > > --- The EJB implementation --- > @Stateless > @RunAs("admin") > @DeclareRoles("admin") > public class RunAsServiceBean implements RunAsService { > > @Resource > private SessionContext sessionContext; > > @Override > public boolean isAdmin() { > return sessionContext.isCallerInRole("admin"); > } > > } > > -- > Luis Fernando Planella Gonzalez >
