public DispatchServiceResultContainer executeAction(Action action) throws ActionExecutionException, PermissionDeniedException {
UserId userId = getUserInSession();
HttpServletRequest request = getThreadLocalRequest();
HttpSession session = request.getSession();
final RequestContext requestContext = new RequestContext(userId, session);
final ExecutionContext executionContext = new ExecutionContext(userId);
return executor.execute(action, requestContext, executionContext);
}