Spring Security, метод Tomcat, метод getRemoteUser - PullRequest
2 голосов
/ 21 августа 2009

У меня есть два приложения в одном коте. одно из этих приложений использует весеннюю безопасность для аутентификации. Я хотел бы, чтобы метод getRemoteUser возвращал действительное имя пользователя во втором приложении при входе в первое.

Есть ли простой способ достичь этого? Можете ли вы указать мне простейшее решение, которое сделает это?

спасибо за ответы

Ответы [ 2 ]

0 голосов
/ 21 августа 2009

Это вернет локального текущего зарегистрированного пользователя:

String username = SecurityContextHolder.getContext()
    .getAuthentication().getName();

Таким образом, если appA зарегистрировано в appB , то предоставление этого контроллера вернет имя пользователя, которое использовалось в appA для входа в appB. Какой appA уже должен знать, мммм:

public class UserController extends AbstractController {

  @Override
  protected ModelAndView handleRequestInternal(HttpServletRequest req,
   HttpServletResponse res) throws Exception {
      String username = SecurityContextHolder.getContext()
          .getAuthentication().getName();
      ModelAndView mv = new ModelAndView("jsonResponse");
      mv.addObject("username", username);
      return mv;
  }
}
0 голосов
/ 21 августа 2009

Я не верю, что Приложение 2 может получить доступ к информации безопасности приложения 1. В любом случае, не напрямую, возможно, с помощью удаленного взаимодействия или веб-сервисов. Тем не менее, я не думаю, что в весенней среде безопасности есть место, где вы можете просматривать приложения и получать информацию только через код Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...