2009-04-07 51 views
8

Tôi muốn phát triển một ứng dụng Java có thể phát hiện người dùng đã đăng nhập vào Miền cửa sổ. Các thông tin đăng nhập này sẽ được sử dụng để đăng nhập vào ứng dụng Java đang chạy trên Tomcat.Phát hiện người dùng đã đăng nhập trên máy tính bằng ứng dụng web Java

Tôi làm cách nào để thực hiện việc này? Tôi muốn biết người dùng từ xa đang truy cập vào ứng dụng web của mình. Người dùng này đã đăng nhập vào một thư mục hoạt động

Cảm ơn!

+0

Điều này khác với http://stackoverflow.com/questions/725124/detect-user-logged-on-a-computer-using-java như thế nào? –

+0

Có lẽ tôi đã đặt câu hỏi theo cách sai. Các giải pháp trước đó không hoạt động trên Java Web App. – VansFannel

+0

Có lẽ đây là những gì bạn đang tìm kiếm? http://stackoverflow.com/questions/439120/how-to-configure-tomcat-to-use-windows-ntlm-authentication –

Trả lời

5

Đây là giải pháp của tôi:

Đặt JCIFS-1.2.7.jar trên [TOMCAT_HOME]/thư mục common/lib. web.xml

Sửa của ứng dụng bổ sung các văn bản followin mục webapp:

<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> 

Và bạn có thể lấy người dùng từ xa sử dụng request.getRemoteUser() whithout nhắc.

Hẹn gặp bạn.

+2

Tính năng này của JCIFS không được chấp nhận. Xem văn bản màu xanh lam ở đầu trang Xác thực HTTP NTLM để biết giải thích và thay thế được đề xuất: http://jcifs.samba.org/src/docs/ntlmhttpauth.html – user8134

+1

@ioplex, văn bản màu xanh lam đó không đề cập đến giấy phép cho jespa khác với giấy phép cho JCIFS. Nếu bạn là JCIFS Mike, có lẽ bạn có thể khắc phục điều đó? –

1

Nói chung, bạn có thể móc vào dịch vụ ủy quyền cục bộ bằng cách sử dụng Java Authentication and Authorization Service. Điều đó có thể làm những gì bạn muốn.

Điều đó nói rằng, bạn có chắc đây là cách đi đúng không? Bạn muốn thực hiện những gì? Bạn đang tìm kiếm một giải pháp đăng nhập một lần cho webapp?

Sau đó, điều này: How to configure Tomcat to use Windows NTLM authentication? có thể là những gì bạn đang tìm kiếm, theo đề xuất của Steve Đọc trong nhận xét ở trên.

+0

Tôi muốn biết người dùng từ xa đang truy cập vào ứng dụng web của mình. Người dùng này được đăng nhập vào một thư mục hoạt động. – VansFannel

0

Tôi nhớ lại bằng cách sử dụng mod_ntlm cho apache đã làm cho các trick cho tôi, nhưng đó là vài năm trước đây, vì vậy tôi không biết những gì đã thay đổi kể từ đó.

1

Jcifs hoàn toàn chắc chắn sẽ giúp bạn. Thư viện này có thể được sử dụng để thực hiện xác thực NTLM.

Các vấn đề liên quan