Re: Turbine Framework and LDAP

Juergen Hoffmann <[email protected]> Mon, 26 Apr 2010 12:01:27 +0200
Newsgroups gmane.comp.jakarta.turbine.user
Organization Apache Software Foundation
Message-ID <[email protected]>
Hi Thomas,

could you please post your LDAP Configuration for Turbine?

kind regards

Juergen

Am 26.04.2010 11:26, schrieb Thomas Fröhlich:
> Hi,
>
> is there anybody out there who uses the Turbine framework together 
> with  LDAP or an AD-server? Unfortunately I failed to connect Turbine 
> to our AD-server.
>
> I have observed the TCP communication on LDAP port 389 using 
> WIRESHARK. The Turbine connect binding works fine but retrieving the 
> TurbineGroup informations from LDAP Turbine crashes with an 
> NullPointerException. You will find the whole stacktrace and a TCP 
> communication snippet at the end of this mail.
>
> The groups TurbineGroupGlobal an TurbineGroupService are LDAP group 
> objects expanded by the auxiliary Turbine object turbineGroup. The 
> test user "mhernandez" is a LDAP user object expanded by the auxiliary 
> Turbine object turbineUser. All required attributes are filled.
>
> I have red all old mailing list entries concerning LDAP. I'm right if 
> I assume, that LDAP support isn't finally implemented into Turbine?
>
> Thank you in advance for all hints :)
>
> Kind regards
> Thomas Froehlich
>
>
> ************************** snippet stacktrace **************************
>
>
> 2010-04-23 16:23:31,576 [TP-Processor2] ERROR 
> org.apache.turbine.Turbine - Turbine.handleException:
> org.apache.turbine.util.security.DataBackendException: Failed to build 
> ACL for user 'mhernandez'
>     at 
> org.apache.turbine.services.security.ldap.LDAPSecurityService.getACL(LDAPSecurityService.java:139) 
>
>     at 
> org.apache.turbine.services.security.TurbineSecurity.getACL(TurbineSecurity.java:444) 
>
>     at 
> org.apache.turbine.modules.actions.AccessController.doPerform(AccessController.java:99) 
>
>     at org.apache.turbine.modules.Action.perform(Action.java:51)
>     at 
> org.apache.turbine.modules.ActionLoader.exec(ActionLoader.java:102)
>     at org.apache.turbine.Turbine.doGet(Turbine.java:760)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
>
>     at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
>
>     at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
>
>     at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
>
>     at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
>
>     at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
>
>     at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
>     at 
> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421) 
>
>     at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
>
>     at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
>
>     at 
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
>     at 
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
>     at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
>     at 
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) 
>
>     at 
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) 
>
>     at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) 
>
>     at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>     at java.util.TreeMap.compare(TreeMap.java:1093)
>     at java.util.TreeMap.put(TreeMap.java:465)
>     at org.apache.turbine.util.security.GroupSet.add(GroupSet.java:79)
>     at org.apache.turbine.util.security.GroupSet.add(GroupSet.java:98)
>     at org.apache.turbine.util.security.GroupSet.<init>(GroupSet.java:66)
>     at 
> org.apache.turbine.services.security.ldap.LDAPSecurityService.getGroups(LDAPSecurityService.java:470) 
>
>     at 
> org.apache.turbine.services.security.BaseSecurityService.getAllGroups(BaseSecurityService.java:1164) 
>
>     at 
> org.apache.turbine.services.security.ldap.LDAPSecurityService.getACL(LDAPSecurityService.java:108) 
>
>     ... 24 more
> 2010-04-23 16:51:20,382 [TP-Processor9] ERROR 
> org.apache.turbine.services.pull.TurbinePullService - Could not 
> instantiate request tool acl from a de.tewisoft.aloe.turbine.ACLTool 
> object
> java.lang.NullPointerException
>     at java.lang.String.compareTo(String.java:998)
>     at java.lang.String.compareTo(String.java:90)
>     at java.util.TreeMap.compare(TreeMap.java:1093)
>     at java.util.TreeMap.getEntry(TreeMap.java:347)
>     at java.util.TreeMap.get(TreeMap.java:265)
>     at 
> org.apache.turbine.util.security.GroupSet.getGroupByName(GroupSet.java:173) 
>
>     at 
> org.apache.turbine.services.security.BaseSecurityService.getGlobalGroup(BaseSecurityService.java:961) 
>
>     at 
> org.apache.turbine.services.security.TurbineSecurity.getGlobalGroup(TurbineSecurity.java:595) 
>
>     at 
> org.apache.turbine.util.security.TurbineAccessControlList.getPermissions(TurbineAccessControlList.java:148) 
>
>     at de.tewisoft.aloe.turbine.ACLTool.init(ACLTool.java:43)
>     at 
> org.apache.turbine.services.pull.TurbinePullService.initTool(TurbinePullService.java:736) 
>
>     at 
> org.apache.turbine.services.pull.TurbinePullService.populateWithRequestTools(TurbinePullService.java:456) 
>
>     at 
> org.apache.turbine.services.pull.TurbinePullService.populateContext(TurbinePullService.java:378) 
>
>     at 
> org.apache.turbine.services.velocity.TurbineVelocityService.getContext(TurbineVelocityService.java:250) 
>
>     at 
> org.apache.turbine.services.velocity.TurbineVelocity.getContext(TurbineVelocity.java:122) 
>
>     at 
> org.apache.turbine.modules.pages.VelocityPage.doBuildBeforeAction(VelocityPage.java:50) 
>
>     at 
> org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:110) 
>
>     at org.apache.turbine.modules.Page.build(Page.java:56)
>     at org.apache.turbine.modules.PageLoader.exec(PageLoader.java:104)
>     at org.apache.turbine.Turbine.doGet(Turbine.java:796)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
>
>     at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
>
>     at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
>
>     at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
>
>     at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
>
>     at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
>
>     at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
>     at 
> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421) 
>
>     at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
>
>     at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
>
>     at 
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
>     at 
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
>     at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
>     at 
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) 
>
>     at 
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) 
>
>     at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) 
>
>     at java.lang.Thread.run(Thread.java:595)
>
>
> ******************* snippet LDAP TCP communication *********************
>
> No.     Time                       Source                Destination 
>        Protocol Info
>      32 2010-04-23 16:23:31.642312 192.168.20.231        
> 192.168.20.173        LDAP     searchResEntry(2) 
> "CN=TurbineGroupGlobal,OU=Turbine,OU=myproject,DC=example,DC=com" | 
> searchResEntry(2) 
> "CN=TurbineGroupService,OU=Turbine,OU=myproject,DC=example,DC=com" | 
> searchResDone(2) success  [2 results]
>
> Frame 32 (1840 bytes on wire, 1840 bytes captured)
> Ethernet II, Src: fa:a2:57:b8:8f:1b (fa:a2:57:b8:8f:1b), Dst: 
> 4e:58:d9:f6:61:fd (4e:58:d9:f6:61:fd)
> Internet Protocol, Src: 192.168.20.231 (192.168.20.231), Dst: 
> 192.168.20.173 (192.168.20.173)
> Transmission Control Protocol, Src Port: ldap (389), Dst Port: 
> turbonote-2 (34249), Seq: 23, Ack: 185, Len: 1774
>     Source port: ldap (389)
>     Destination port: turbonote-2 (34249)
>     [Stream index: 3]
>     Sequence number: 23    (relative sequence number)
>     [Next sequence number: 1797    (relative sequence number)]
>     Acknowledgement number: 185    (relative ack number)
>     Header length: 32 bytes
>     Flags: 0x18 (PSH, ACK)
>     Window size: 66304 (scaled)
>     Checksum: 0xaaeb [validation disabled]
>     Options: (12 bytes)
>     [SEQ/ACK analysis]
>     [PDU Size: 873]
>     [PDU Size: 879]
>     [PDU Size: 22]
> Lightweight-Directory-Access-Protocol
>     LDAPMessage searchResEntry(2) 
> "CN=TurbineGroupGlobal,OU=Turbine,OU=myproject,DC=example,DC=com" [1 
> result]
>         messageID: 2
>         protocolOp: searchResEntry (4)
>             searchResEntry
>                 objectName: 
> CN=TurbineGroupGlobal,OU=Turbine,OU=myproject,DC=example,DC=com
>                 attributes: 17 items
>                     PartialAttributeList item objectClass
>                     PartialAttributeList item cn
>                     PartialAttributeList item distinguishedName
>                     PartialAttributeList item instanceType
>                     PartialAttributeList item whenCreated
>                     PartialAttributeList item whenChanged
>                     PartialAttributeList item uSNCreated
>                     PartialAttributeList item uSNChanged
>                     PartialAttributeList item name
>                     PartialAttributeList item objectGUID
>                     PartialAttributeList item objectSid
>                     PartialAttributeList item sAMAccountName
>                     PartialAttributeList item sAMAccountType
>                     PartialAttributeList item groupType
>                     PartialAttributeList item objectCategory
>                     PartialAttributeList item dSCorePropagationData
>                     PartialAttributeList item turbineGroupName
>         [Response To: 31]
>         [Time: 0.000349000 seconds]
> Lightweight-Directory-Access-Protocol
>     LDAPMessage searchResEntry(2) 
> "CN=TurbineGroupService,OU=Turbine,OU=myproject,DC=example,DC=com" [2 
> results]
>         messageID: 2
>         protocolOp: searchResEntry (4)
>             searchResEntry
>                 objectName: 
> CN=TurbineGroupService,OU=Turbine,OU=myproject,DC=example,DC=com
>                 attributes: 17 items
>                     PartialAttributeList item objectClass
>                     PartialAttributeList item cn
>                     PartialAttributeList item distinguishedName
>                     PartialAttributeList item instanceType
>                     PartialAttributeList item whenCreated
>                     PartialAttributeList item whenChanged
>                     PartialAttributeList item uSNCreated
>                     PartialAttributeList item uSNChanged
>                     PartialAttributeList item name
>                     PartialAttributeList item objectGUID
>                     PartialAttributeList item objectSid
>                     PartialAttributeList item sAMAccountName
>                     PartialAttributeList item sAMAccountType
>                     PartialAttributeList item groupType
>                     PartialAttributeList item objectCategory
>                     PartialAttributeList item dSCorePropagationData
>                     PartialAttributeList item turbineGroupName
>         [Response To: 31]
>         [Time: 0.000349000 seconds]
> Lightweight-Directory-Access-Protocol
>     LDAPMessage searchResDone(2) success [2 results]
>         messageID: 2
>         protocolOp: searchResDone (5)
>             searchResDone
>                 resultCode: success (0)
>                 matchedDN:
>                 errorMessage:
>         [Response To: 31]
>         [Time: 0.000349000 seconds]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>