directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pierre-Arnaud Marcelot ...@marcelot.net>
Subject Re: LDAP diagnostic tool - GSoC 2010
Date Tue, 22 Jun 2010 09:06:48 GMT
Hi Kehelyia,

It's been a long time without news...

More inline.

On 22 juin 2010, at 10:47, Keheliya Gallaba wrote:

> Hi Pierre-Arnaud,
> 
> These days I'm working on logging LDAP requests and responses in an external file in
the ldap-network-server project [1] . Although currently, it is been simply written as plain
text, i thought it will be useful to write them in a meaningful format like XML since we need
to retrieve that information later. And I think DSML [2] will be the best choice for that
since there are DSML utilities already available in Directory project.

Although DSML seems a really good choice, unfortunately I think it won't be a suitable candidate
for storing the request and response data.
The DSMLv2 format is almost a perfect mapping of the LDAP Protocol in XML except for the Bind
request.
In DSMLv2 the Bind Request element does contain any information but the bind DN.
Authentication method and, more importantly, credentials are stored in the request and the
XML file.

Unfortunately, I think you'll have to write your own custom XML parser/writer because of that
issue.

Any other idea ?


> And for reading and writing from files, I thought to use, Apache Commons-IO [3] since
it maintains consistency between Unix and Windows environments when handling low-level operations.

If you're to write a custom XML parser/writer, I'd recommend that you use Dom4J. That's something
we're already using in Studio (the jar is already in the 'jars' plugin where all shared libraries
are stored).
You can have a look at an XML parser/writer implementation using Dom4J in the 'connection.core'
plugin where we've defined an XML parser/writer for saving and loading connections.
I can guide you more on IRC if you need.


> I would be happy to know your idea on these, and any guidelines for including these external
modules in the project to move on.

Did you have the time to gather all ideas about the UML use-case diagram we talked about earlier
?
Same thing about the needed UI parts (perspective, views, preferences pages, wizards) for
the Eclipse plugin ?

We need to move a little bit faster as the first evaluation is approaching very quickly.


Thanks,
Pierre-Arnaud


> On 10 June 2010 19:10, Pierre-Arnaud Marcelot <pa@marcelot.net> wrote:
> Hi Keheliya,
> 
> I've just created a new project in your GSoC SVN repository: ldap-network-server. [1]
> 
> This project contains what should get you started with the proxy plugin.
> 
> I included in it a minimal version of a LDAP Network Server. This server contains the
minimal code to receive LDAP Protocol requests (like bind, search, etc.).
> At the moment each request responds with an "unwilling to perform" error code, except
the bind request which is implemented to always respond successfully (that's just an example).
> 
> It's now up to you to plug-in this server in your code and fill-in the blanks I left
with the implementation of each request which should:
> - log the received request
> - communicate with the target server
> - log the response from the target server
> - forward the received response to the initial client
> 
> Looking forward to see you start coding around this.
> 
> Regards,
> Pierre-Arnaud
> 
> [1] - http://code.google.com/p/dirstudio-ldap-proxy/source/browse/#svn/trunk/ldap-proxy/ldap-network-server
> 
> 
> On 7 juin 2010, at 09:36, Kasun Lakpriya wrote:
> 
> > Hi Keheliya,
> > As I got to know in Studio the maven setup is some what different
> > because they are using their own maven plugin(studio-maven-plugin) to
> > generate all the eclipse specific files. So as you can see in the
> > persistence-tooling project I think you should include those two
> > plugins:
> >
> > (1). studio-maven-plugin
> > (2). maven-bundle-plugin
> >
> > And also hope you also need some of the plugins in Studio if it is the
> > case you can use the dependency below instead of adding one jar by jar
> > to the build path.
> >
> > <dependency>
> >      <groupId>org.apache.directory.studio</groupId>
> >      <artifactId>jars</artifactId>
> >      <version>${apache.directory.studio.version}</version>
> >      <scope>provided</scope>
> > </dependency>
> >
> > Hope you got something from this.
> >
> > Best regards,
> > Kasun
> >
> > On Mon, Jun 7, 2010 at 11:22 AM, Keheliya Gallaba
> > <keheliya.gallaba@gmail.com> wrote:
> >> Hello everyone,
> >> I created the project folder structure for this project by following the
> >> below guide [1]. It is as follows.
> >> .
> >> `-- dirstudio-ldap-proxy
> >>     `-- ldap-proxy
> >>         |-- ldap-proxy-core
> >>         |   |-- pom.xml
> >>         |   `-- src
> >>         |       |-- main
> >>         |       |   `-- java
> >>         |       |       `-- org
> >>         |       |           `-- apache
> >>         |       |               `-- directory
> >>         |       |                   `-- studio
> >>         |       |                       `-- proxy
> >>         |       |                           `-- core
> >>         |       |                               `-- App.java
> >>         |       `-- test
> >>         |           `-- java
> >>         |               `-- org
> >>         |                   `-- apache
> >>         |                       `-- directory
> >>         |                           `-- studio
> >>         |                               `-- proxy
> >>         |                                   `-- core
> >>         |                                       `-- AppTest.java
> >>         |-- ldap-proxy-ui
> >>         |   |-- pom.xml
> >>         |   `-- src
> >>         |       |-- main
> >>         |       |   `-- java
> >>         |       |       `-- org
> >>         |       |           `-- apache
> >>         |       |               `-- directory
> >>         |       |                   `-- studio
> >>         |       |                       `-- proxy
> >>         |       |                           `-- ui
> >>         |       |                               `-- App.java
> >>         |       `-- test
> >>         |           `-- java
> >>         |               `-- org
> >>         |                   `-- apache
> >>         |                       `-- directory
> >>         |                           `-- studio
> >>         |                               `-- proxy
> >>         |                                   `-- ui
> >>         |                                       `-- AppTest.java
> >>         `-- pom.xml
> >> 38 directories, 7 files
> >> But when I went through newly created 'Persistence Tooling' folder structure
> >> in google code [2] I found pom.xml files adhere to a structure specific to
> >> Directory Studio. So please guide me how to do that in LDAP-proxy project
> >> too.
> >> Another problem is when I tried to add and commit the structure I created,
> >> to the google code svn location [3], I get the following error.
> >>>
> >>>  svn commit -m "Project folder structure created"
> >>>
> >>> Authentication realm: <https://dirstudio-ldap-proxy.googlecode.com:443>
> >>> Google Code Subversion Repository
> >>>
> >>> Password for 'keheliya':
> >>>
> >>> svn: Commit failed (details follow):
> >>>
> >>> svn: Server sent unexpected return value (500 Internal Server Error) in
> >>> response to MKACTIVITY request for
> >>> '/svn/!svn/act/06e06b41-2e27-4770-ba89-45b92b26013b'
> >>
> >> Please me help me out to configure the project properly and continue with
> >> development
> >> [1] http://maven.apache.org/guides/mini/guide-ide-eclipse.html
> >> [2] http://code.google.com/p/dirstudio-ldap-tooling/source/browse/
> >> [3] http://code.google.com/p/dirstudio-ldap-proxy/source/browse/#svn/trunk
> >>
> >> On 31 May 2010 22:12, Pierre-Arnaud Marcelot <pa@marcelot.net> wrote:
> >>>
> >>> Hi Keheliya,
> >>> Sorry for not being able to answer your mail sooner but I was on holidays
> >>> with no Internet connection these last days.
> >>> Hopefully my fellow peeps have well guided you for your architecture
> >>> diagram and the next steps with the creation of a "mini LDAP server".
> >>> On the diagram side, I agree with all Stefan and Emmanuel comments.
> >>> On IRC, you said that you didn't succeed yet on building such the "mini
> >>> LDAP Server", can you be more specific and indicate what you already
> >>> accomplished and where you got stuck.
> >>> Like Stefan, I'm no expert in that part of the code (I'm more a GUI guy)
> >>> but I'll look into it while waiting for your answer and I'm pretty sure
the
> >>> server-side experts (Emmanuel, Kiran, Alex) will be able to guide you in
the
> >>> right direction.
> >>> The good news is that we already have all the code to deal with
> >>> received/decoding as well as sending/encoding LDAP Protocol messages, so
> >>> it's just a matter of adding a bit of glue on the appropriate parts of the
> >>> code.
> >>> The solution may not be in the LdapServer class itself but "hidden" in the
> >>> other classes behind this one.
> >>> Regards,
> >>> Pierre-Arnaud
> >>> On 21 mai 2010, at 06:45, Keheliya Gallaba wrote:
> >>>
> >>> Hello everyone,
> >>>
> >>> I have come up with an architecture diagram [1], with the help of
> >>> Seelmann, for the LDAP diagnostic tool explaining the functionality of the
> >>> core. I thought of implementing the initial phase with JNDI and moving to
> >>> the new client API later. Please send your suggestions for this approach,
> >>> and about the existing code components I can reuse, from Directory Studio.
> >>>
> >>> [1] http://code.google.com/p/dirstudio-ldap-proxy/wiki/ArchitectureDiagram
> >>>
> >>> Thanks,
> >>>
> >>> --
> >>> Keheliya Gallaba
> >>> http://galpotha.wordpress.com
> >>> http://twitter.com/keheliya
> >>>
> >>
> >> Thanks,
> >>
> >> --
> >> Keheliya Gallaba
> >> http://galpotha.wordpress.com
> >> http://twitter.com/keheliya
> >>
> 
> 
> [1] http://code.google.com/p/dirstudio-ldap-proxy
> [2] http://www.oasis-open.org/committees/dsml/docs/DSMLv2.doc
> [3] http://commons.apache.org/io/description.html
> 
> Thanks and regards,
> 
> -- 
> Keheliya Gallaba
> http://galpotha.wordpress.com
> http://twitter.com/keheliya


Mime
View raw message