2009-08-21 13 views
2

ich habe zwei anwendungen in einem tomcat. Eine dieser Anwendungen verwendet Spring-Sicherheit für die Authentifizierung. Ich möchte, dass die Methode getRemoteUser einen gültigen Benutzernamen in der zweiten Anwendung zurückgibt, wenn sie in der ersten Anwendung angemeldet ist.feder sicherheit, tomcat, getRemoteUser methode

Gibt es einen einfachen Weg, dies zu erreichen? kannst du mir bitte auf einfachste lösung hinweisen die das macht?

Dank für Antworten

Antwort

0

Ich glaube Anwendung nicht 2 kann Anwendung 1 die Sicherheitsinformationen zugreifen. Nicht direkt, vielleicht mit Remoting, oder Webservices können Sie dies tun. Allerdings glaube ich nicht, dass es einen Platz im Spring-Sicherheitsrahmen gibt, wo man über Anwendungen hinweg gehen und Informationen nur durch Java-Code erhalten kann.

0

Dies wird die lokale Strom angemeldeten Benutzer zurück:

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

Also, wenn appA angemeldet ist in AppB dann diesen Controller aussetzt den Benutzernamen zurückgeben, die man in appA verwendet um sich einzuloggen in AppB. Wich appA sollten bereits wissen, 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

ich vielmehr wurde über irgendeine Art von Single Sign-On Lösung zu denken, so dass tomcat die Informationen über Sicherheit teilen können. Ich bin mir nicht sicher, wie man SingleSignOn Ventil in Tomcat verwendet:/ –

+0

OK. Ich habe gerade ein SSO-Projekt mit CAS SSO, Tomcat und Spring Security abgeschlossen. Es ist wirklich einfach einzurichten und es funktioniert großartig. http://www.jasig.org/cas – rodrigoap

Verwandte Themen