У меня простой вопрос о @RunAs.
Помимо EJB, могу ли я использовать @RunAs на сервлете для распространения роли безопасности? например как:
У меня есть общедоступный сервлет:
@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, у него должна быть правильная роль «Администратор» для вызова защищенного метода EJB из веб-запроса. Я прав в этом примере? Или мне нужна другая дополнительная конфигурация?
Спасибо,