2013-02-13 98 views
0

當我嘗試從模擬器中的WL hybird應用程序登錄時,出現以下異常。驗證失敗,Worklight-Liberty配置文件配置爲LDAP(SSO)

環境:

1)工作燈服務器(505版本)使用默認的自由輪廓和Derby數據庫安裝。
2)Userregistry配置爲LDAP。 LDAP已啓動並正在運行。
3)我按照 「模塊20.1基於表單的驗證」

的Server.xml配置是否正確:

ldapRegistry id="IBMDirectoryServerLDAP" realm="defaultWIMFileBasedRealm" 
     host="testserver.com" port="4389" ignoreCase="true" 
     baseDN="dc=ibm,dc=com" 
     bindDN="cn=xyz" 
     bindPassword="xyz123" 
     ldapType="IBM Tivoli Directory Server" reuseConnection="true" 
     idsFilters 
      userFilter="(&(uid=%v)(objectclass=ePerson))" 
      groupFilter="(&(cn=%v)(|(objectclass=groupOfNames)(objectclass=groupOfUniqueNames)(objectclass=groupOfURLs)))" 
      userIdMap="*:uid" 
      groupIdMap="*:cn" 
      groupMemberIdMap="ibm-allGroups:member;ibm-allGroups:uniqueMember;groupOfNames:member;groupOfUniqueNames:uniqueMember" 
    ldapRegistry 

登錄模塊是:com.worklight.core.auth.ext.WebSphereLoginModule
認證是:com.worklight.core.auth.ext.WebSphereFormBasedAuthenticator

例外:

[RandomNumberGenerationServlet]: Initialization successful. 
[2/13/13 15:37:21:349 IST] 00000049 com.worklight.core.auth.ext.WebSphereFormBasedAuthenticator I FWLSE0055I: Not recognized. 
[2/13/13 15:38:27:288 IST] 0000004b ication.internal.jaas.modules.UsernameAndPasswordLoginModule A CWWKS1100A: Authentication did not succeed for user ID wpsbind. An invalid user ID or password was specified. 
[2/13/13 15:38:27:742 IST] 0000004f com.worklight.core.auth.ext.WebSphereFormBasedAuthenticator I FWLSE0055I: Not recognized. 
[2/13/13 15:38:27:746 IST] 0000004f com.worklight.core.auth.ext.WebSphereFormBasedAuthenticator I FWLSE0055I: Not recognized. 
[2/13/13 15:38:27:747 IST] 0000004f com.worklight.core.auth.impl.AuthenticationFilter   E FWLSE0048E: Unhandled exception caught: realm WASLTPARealm is not allowed to ignore request to a protected resouce in a non-success state 
java.lang.IllegalStateException: realm WASLTPARealm is not allowed to ignore request to a protected resouce in a non-success state 
    at com.worklight.core.auth.impl.AuthenticationContext.checkAuthentication(AuthenticationContext.java:515) 
    at com.worklight.core.auth.impl.AuthenticationContext.processRealms(AuthenticationContext.java:396) 
    at com.worklight.core.auth.impl.AuthenticationContext.pushCurrentResource(AuthenticationContext.java:373) 
    at com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:63) 
    at com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:162) 
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:85) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:940) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1037) 
    at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:81) 
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:930) 
    at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:274) 
    at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:529) 
    at com.ibm.ws.threading.internal.Worker.executeWork(Worker.java:398) 
    at com.ibm.ws.threading.internal.Worker.run(Worker.java:380) 

回答

0

身份驗證發生在Liberty中,爲了讓Worklight識別登錄用戶,它需要知道它。

基於表單的身份驗證在這裏沒有幫助。你可以做什麼,應該做的是實現一個基於自定義的認證器,它將從Liberty的響應中檢索包含用戶信息的自定義HTTP頭。

你可以閱讀更多有關以下入門培訓模塊基於自定義的驗證,先熟悉一下概念: ftp://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v505/Module_23_-_Custom_Authenticator_and_Login_Module.pdf

對於認證流程的清晰的「形象」,你可以看到http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m5/topic/com.ibm.worklight.help.doc/integ/r_authentication_at_the_gateway.html

+0

謝謝,我下面的文章在這裏:這裏描繪圖 http://www.ibm.com/developerworks/mobile/library/mo-aim1211-worklight-portal-3/index.html ?ca = drs#ibm-pcon 如果在Worklight端沒有問題。在Liberty服務器端可能會出現一些配置問題嗎? – 2013-02-13 12:29:18

+1

它的工作用於在更改idsfilters:userFilter = 「(&(UID =%V)(對象類=爲inetOrgPerson))」 groupFilter = 「(&(CN =%V)(對象類= groupOfUniqueNames的))」 userIdMap =」 *:uid「 groupIdMap =」*:cn「 groupMemberIdMap =」ibm-allGroups:member; ibm-allGroups:uniqueMember「 – 2013-02-14 12:06:26