|
OpenFire可以很方便的集成已有數(shù)據(jù)庫類別的系統(tǒng)的用戶認(rèn)證,通常的應(yīng)用中還會遇到和Windows的身份認(rèn)證集成,下面對方法總結(jié)一下:
一、集成本地Windows用戶管理 此方法用openfire本身已經(jīng)實(shí)現(xiàn)的NativeAuthProvider類進(jìn)行驗(yàn)證,設(shè)置步驟如下: 1. 安裝openfire 3.7.0; 2. 將openfire_3_7_0\openfire\resources\nativeAuth\win32-x86\下的shaj.dll文件復(fù)制到Java\jdk1.6.0_23\bin\下; 3. 運(yùn)行openfire.exe; 4. 點(diǎn)擊Launch Admin,配置好后,在打開的瀏覽器中輸入正確的管理員帳戶和密碼,登錄; 5. 在“服務(wù)器—服務(wù)器管理器—系統(tǒng)屬性”中,將“provider.auth.className”的屬性值修改為“org.jivesoftware.openfire.auth.NativeAuthProvider”并保存屬性 6. 至此,再登錄openfire服務(wù)器必須用正確的本機(jī)windows用戶名及密碼。由于默認(rèn)只有用戶名admin為管理員,建議在windows下新建admin用戶或增加openfire的管理員帳戶。
二、集成Windows AD 通過JAAS的開源庫,我們也可以自己實(shí)現(xiàn)一個AD認(rèn)證的Provider 1. 下載waffle http://waffle./ 2、編譯Provider的實(shí)現(xiàn)類并包含guava-r07.jar、jna.jar、platform.jar、waffle-jna.jar,形成一個jar包,并復(fù)制到openfire_3_7_0\openfire\lib下 3、Openfire的provider.auth.className設(shè)置為我們實(shí)現(xiàn)的類即可 具體的實(shí)現(xiàn)如下 import waffle.windows.auth.impl.WindowsAuthProviderImpl; public class NTLMAuthProvider implements AuthProvider { public NTLMAuthProvider() { } public void authenticate(String username, String token, String digest) throws UnauthorizedException { public boolean isPlainSupported() { public boolean isDigestSupported() { public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException { public void setPassword(String username, String password) throws UserNotFoundException { public boolean supportsPasswordRetrieval() {
關(guān)鍵解讀 以上的實(shí)現(xiàn)主要就是依據(jù)Java的JAAS規(guī)范,然后讀取Windows賬戶和AD服務(wù)信息,實(shí)現(xiàn)用戶的驗(yàn)證。 |
|
|