@AuthenticationRequired
  @RequestMapping(
      value = "browser/myResources",
      method = RequestMethod.GET,
      produces = {"application/json"})
  @ResponseBody
  @ResponseStatus(value = HttpStatus.OK)
  public ResourceList<BrowserLaunchable> myBrowserResources(
      final HttpServletRequest request, HttpServletResponse response)
      throws AccessDeniedException, UnauthorizedException, SessionTimeoutException {

    setupAuthenticatedContext(sessionUtils.getSession(request), sessionUtils.getLocale(request));

    try {
      ResourceList<BrowserLaunchable> list =
          new ResourceList<BrowserLaunchable>(
              new HashMap<String, String>(),
              resourceService.getPersonalResources(sessionUtils.getPrincipal(request)));
      list.getProperties()
          .put(
              "authCode",
              sessionService.createSessionToken(sessionUtils.getSession(request)).getShortCode());
      return list;
    } finally {
      clearAuthenticatedContext();
    }
  }
  @AuthenticationRequired
  @RequestMapping(
      value = "browser/personal",
      method = RequestMethod.GET,
      produces = {"application/json"})
  @ResponseBody
  @ResponseStatus(value = HttpStatus.OK)
  public BootstrapTableResult tableNetworkResources(
      final HttpServletRequest request, HttpServletResponse response)
      throws AccessDeniedException, UnauthorizedException, SessionTimeoutException {

    setupAuthenticatedContext(sessionUtils.getSession(request), sessionUtils.getLocale(request));

    try {
      return processDataTablesRequest(
          request,
          new BootstrapTablePageProcessor() {

            @Override
            public Column getColumn(int col) {
              return BrowserLaunchableColumns.values()[col];
            }

            @Override
            public List<?> getPage(
                String searchPattern, int start, int length, ColumnSort[] sorting)
                throws UnauthorizedException, AccessDeniedException {
              return resourceService.searchPersonalResources(
                  sessionUtils.getPrincipal(request), searchPattern, start, length, sorting);
            }

            @Override
            public Long getTotalCount(String searchPattern)
                throws UnauthorizedException, AccessDeniedException {
              return resourceService.getPersonalResourceCount(
                  sessionUtils.getPrincipal(request), searchPattern);
            }
          });
    } finally {
      clearAuthenticatedContext();
    }
  }