2009-08-21 3 views
2

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

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

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

ответ

0

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

0

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

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

Так что, если APPA авторизован в AppB затем подвергая этот контроллер возвращает имя пользователя, он используется в APPA для входа в систему в приложение. Wich 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

Я скорее подумал о каком-то единственном сигнале решения, чтобы tomcat мог поделиться информацией о безопасности. Я не совсем уверен, как использовать клапан SingleSignOn в tomcat:/ – 2009-08-24 09:02:22

+0

OK. Я только что закончил проект SSO, используя CAS SSO, Tomcat и Spring Security. Это очень просто настроить, и он отлично работает. http://www.jasig.org/cas – rodrigoap

Смежные вопросы