我有一个关于@RunAs的简单问题。@RunAs注解在Servlet上使用
除了EJB,我可以在Servlet上使用@RunAs来传播安全角色吗?例如,作为:
我有一个公共的servlet:
@WebServlet(name = "RunAsServlet", urlPatterns = "/runAs")
@RunAs("Admin")
public class RunAsServlet extends HttpServlet {
@EJB
private MyEjb ejb;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write(ejb.doSomething());
}
}
而一个EJB保护下的角色“系统管理员”:
@Stateless
@RolesAllowed("Admin")
public class MyEjb {
@Resource
private SessionContext sessionContext;
public String doSomething() {
在这种情况下,我应该能够调用RunAsServlet自从@RunAs在它上面,它应该有一个合适的角色“Admin”从Web请求中调用EJB保护的方法,我对这个例子是否正确?或者我需要其他更多配置?
感谢,