我有一個使用Java 1.6和Websphere構建的內部Web應用程序。只有登錄到域的用戶才能訪問該應用程序。我需要能夠訪問使用該應用程序的任何人的用戶名。我們正在使用Windows域控制器。我對Java相當陌生,無法弄清楚如何獲取這些信息。任何幫助,將不勝感激。如果您需要更多信息,我會很樂意提供。從Java Websphere應用程序確定網絡用戶
感謝,
安德魯
我有一個使用Java 1.6和Websphere構建的內部Web應用程序。只有登錄到域的用戶才能訪問該應用程序。我需要能夠訪問使用該應用程序的任何人的用戶名。我們正在使用Windows域控制器。我對Java相當陌生,無法弄清楚如何獲取這些信息。任何幫助,將不勝感激。如果您需要更多信息,我會很樂意提供。從Java Websphere應用程序確定網絡用戶
感謝,
安德魯
下面是最終工作的代碼。
LdapClient ldapClient = new LdapClient();
Boolean foundUserInAD = Boolean.FALSE;
foundUserInAD = ldapClient.userIsInAD(userName, password);
if(foundUserInAD) {
//Do stuff.
}
據我所知J2EE和Web應用程序,通常可以獲取的主要對象,然後檢索用戶名。那是你需要的嗎?
這裏是你如何能做到這一點在一個servlet中的doGet或doPost方法中的例子:
獲取的密碼是非常棘手的,但如果你需要的是用戶名,這應該是他們「登錄」到WebSphere服務器上的名稱(即任何ID都被傳遞給它)。
這是你在找什麼?
請參見:javax.servlet.http.HttpServletRequest.getRemoteUser()
Returns the login of the user making this request, if the user has been authenticated, or null if the user has not been authenticated.
你的問題是不是真正的Java,但被相關。基本上,如果您想使用WAS的安全設施進行網絡安全,則必須從WAS配置的LDAP中找到所有用戶。如果您無法做到這一點,請對應用程序進行更改,以便它實現自己定製的安全性(身份驗證&授權)機制。
這聽起來像是某人爲您的應用程序使用的servlet啓用了JavaEE安全角色,可能還有SPNEGO。這是非常好的配置,但它確實不允許任何從默認LDAP中找不到的人訪問任何內容。
讓我檢查一下。我會聯繫網絡人員,看看他們是如何做到這一點的。可能需要幾個小時,因爲我在他們前面的8個時區。 – 2011-04-06 08:38:05