У меня есть простой вопрос о @RunAs.Использование аннотации @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-компонент находится под защитой роли «Admin»:
@Stateless
@RolesAllowed("Admin")
public class MyEjb {
@Resource
private SessionContext sessionContext;
public String doSomething() {
В этом случае, я должен быть в состоянии назвать RunAsServlet, поскольку @RunAs на нем, он должен иметь надлежащую роль «Администратор» для вызова защищенного метода EJB из веб-запроса. Правильно ли я говорю об этом примере? Или мне нужна другая конфигурация?
Спасибо,