2009-04-07 6 views
8

Ich möchte eine Java-Anwendung entwickeln, die den Benutzer in einer Windows-Domäne angemeldet erkennen kann. Diese Anmeldeinformationen werden für die Anmeldung bei der Java-Anwendung verwendet, die auf Tomcat ausgeführt wird.Detect Benutzer an einem Computer mit Java-Webanwendung

Wie kann ich das tun? Ich möchte wissen, dass der Remote-Benutzer auf meine Web-App zugreift. Dieser Benutzer ist in einem Active Directory angemeldet

Vielen Dank!

+0

Wie unterscheidet sich das von http://stackoverflow.com/questions/725124/detect-user-logged-on-a-computer-using-java? –

+0

Vielleicht habe ich die Frage falsch gestellt. Die vorherigen Lösungen funktionieren nicht in einer Java Web App. – VansFannel

+0

Vielleicht suchen Sie das? http://stackoverflow.com/questions/439120/how-to-configure-tomcat-to-use-windows-ntlm-authentication –

Antwort

5

Dies ist meine Lösung:

Put jCIFS-1.2.7.jar auf [TOMCAT_HOME]/common/lib.

Ändern Anwendung web.xml den followin Text Abschnitt Webapp Zugabe:

<filter> 
    <filter-name>NtlmHttpFilter</filter-name> 
    <filter-class>jcifs.http.NtlmHttpFilter</filter-class> 
    <init-param> 
     <param-name>jcifs.http.domainController</param-name> 
     <param-value>xx.xx.xx.xxx</param-value> --> Domain Controller IP 
    </init-param> 
    <init-param> 
     <param-name>jcifs.util.loglevel</param-name> 
     <param-value>2</param-value> 
    </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>NtlmHttpFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

Und der Sie die Remote-Benutzer mit request.getRemoteUser bekommen können() whithout prompt.

Wir sehen uns.

+2

Diese Funktion von JCIFS ist veraltet. Im blauen Text oben auf der NTLM-HTTP-Authentifizierungsseite finden Sie eine Erläuterung und die empfohlene Alternative: http://jcifs.samba.org/src/docs/ntlmhttpauth.html – user8134

+1

@ioplex, dass der blaue Text das nicht erwähnt Die Lizenz für jespa unterscheidet sich von der für JCIFS. Wenn Sie der JCIFS Mike sind, könnten Sie das vielleicht beheben? –

1

Im Allgemeinen können Sie sich mit am lokalen Autorisierungsdienst anmelden. Das könnte tun, was du willst.

Wie gesagt, sind Sie sicher, dass dies der richtige Weg ist? Was möchten Sie erreichen? Suchen Sie eine Single-Signon-Lösung für die Webapp?

Dann ist dies: How to configure Tomcat to use Windows NTLM authentication? möglicherweise was Sie suchen, wie von Steve vorgeschlagen Lesen Sie im obigen Kommentar.

+0

Ich möchte den Remote-Benutzer wissen, der auf meine Webanwendung zugreift. Dieser Benutzer ist in einem aktiven Verzeichnis angemeldet. – VansFannel

0

Ich erinnere mich mit mod_ntlm für Apache hat den Trick für mich, aber das war vor ein paar Jahren, also ich weiß nicht, was sich seit dem geändert hatte.

1

Jcifs liarbary wird Ihnen sicher behilflich sein. Diese Bibliothek kann für die NTLM-Authentifizierung verwendet werden.