2009-08-21 3 views
2

나는 같은 바람둥이에 두 개의 응용 프로그램이 있습니다. 이러한 응용 프로그램 중 하나는 인증에 스프링 보안을 사용합니다. 첫 번째로 로그인 할 때 두 번째 응용 프로그램에서 유효한 사용자 이름을 반환하려면 메서드 getRemoteUser 싶습니다.스프링 보안, 바람둥이, getRemoteUser 메서드

쉽게 해결할 수 있습니까? 그럴 수있는 가장 간단한 해결책을 알려주시겠습니까? 응답

답변

0

에 대한

덕분에 내가 응용 프로그램 (1)의 보안 정보에 액세스 할 수 있습니다 응용 프로그램이 믿지 않는다. 어쨌든 직접적으로, 아마도 remoting을 사용하거나 webservices를 사용하면이 작업을 수행 할 수 있습니다. 그러나 스프링 보안 프레임 워크에는 응용 프로그램을 탐색하고 Java 코드를 통해서만 정보를 얻을 수있는 위치가 있다고 생각하지 않습니다. APPAappB에 로그인 한 경우

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

그래서, 다음 사용자 이름을 반환합니다이 컨트롤러를 노출하는 것은, APPA에 사용되는 로그인하기 :

0

이 로그인 한 사용자의 로컬 현재를 반환합니다 appB에 입력하십시오. appA가 이미 알고 있어야합니다. mmmm :

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 밸브를 사용하는 방법을 잘 모르겠습니다 :/ –

+0

OK. 방금 CAS SSO, Tomcat 및 Spring Security를 ​​사용하여 SSO 프로젝트를 마쳤습니다. 설치가 정말 쉽고 훌륭합니다. http://www.jasig.org/cas – rodrigoap