Differences between revisions 1 and 2
Revision 1 as of 2009-04-02 20:53:09
Size: 4881
Comment:
Revision 2 as of 2009-09-20 23:36:18
Size: 4881
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

GSoC proposal

Subject

Develop a LDAP proxy GUI

Subject ID

directory-proxy

Author

Kirill Kosinov

Email

kirill.kosinov@gmail.com

Project Title

Eclipse plugin which will expose the LDAP messages.

Project description

The main aim of this project to create a plugin for Apache Directory Studio, which will expose requests being a client and a LDAP server, store them and replay them.

Project details

Apache directory studio is the best open source RCP Application, which contains schemaeditor, ldapbrowser, ldifeditor and other components for comfortable work with LDAP server. In the project Eclipse-LDAP-Proxy i'll create another RCP plugin which will be useful tool for debugging applications which interact with LDAP servers.

Plugin perspective will contain 4 components:

  • Request message view. Tags of ldap request messsages will be written to log and grouped by message id.

i.e. if we have input message in byte form: 0x02, 0x01, 0x01, 0x60, 0x16, 0x02, 0x01, 0x03, 0x04, 0x09, 0x63, 0x6E, 0x3D, 0x70, 0x72, 0x65, 0x76, 0x65, 0x64, (byte)0x80, 0x06, 0x70, 0x72, 0x65, 0x76, 0x65, 0x64. Request message view will contain following information:

msgId

msgData

1

0x02, 0x01, 0x01

1

0x60

1

0x16

1

0x02, 0x01, 0x03

1

0x04, 0x09, 0x63, 0x6E, 0x3D, 0x70, 0x72, 0x65, 0x76, 0x65, 0x64

1

(byte)0x80, 0x06, 0x70, 0x72, 0x65, 0x76, 0x65, 0x64

  • Response view will be represented in byte form.
  • Message detail view will contain decoded message in form:

ASN.1

data

TLV

messageId

0x02, 0x01, 0x01

Integer, length - 1, value -1

operation

0x60

bind_request

PDU length

0x16

version

0x02, 0x01, 0x03

Integer, length - 1, value -3

ldapDN

0x04, 0x09, 0x63, 0x6E, 0x3D, 0x70, 0x72, 0x65, 0x76, 0x65, 0x64

OCTET STRING, length - 9

simple Auth type

(byte)0x80, 0x06, 0x70, 0x72, 0x65, 0x76, 0x65, 0x64

length - 6

  • Editor for user LDAP messages accepts input in three different formats: binary (a raw list of bytes), TLV (type-length-value), LDAP message.

Editors and log viewer allows saving of requests and server responses. I'm familiar with RFC 2251 and ASN.1 notation for user-readable view of messages i plan to use LdapMessage and LdapDecoder classes from org.apache.directory.shared.ldap.codec package.

Plugin configuration

The proxy will be between the client and server. User set up proxy incoming port, than one of saved LDAP connection will be selected to hit the server.

Main features

  • to get LDAP messages from client to server and from server to client in binary and decoded forms.
  • to replay LDAP messages without the client, by using editor. User input can be in one of three forms: binary, TVL, LDAP message;
  • to save message logs.

Development Schedule

April 20 - May 20

Studding of shared codec from org.apache.directory.shared.ldap.codec package, adopting it to goals of project. Studding of RFC 2251 and connected.

May 21 - June 1

Plugin configuration tasks.

June 1 - June 14

Implementation of binary logs of request and response.

June 15 - June 20

Implementation of detailed view.

June 20 - July 6

User input requests in binary form.

July 6 - 10 August

TLV, LDAP message user input.

11 August - 17 August

Testing period for directory-proxy.

Deliverables

  • Source code in maven project with pom to build.
  • Related documentation.
  • Related unit tests.

Why directory project?

During my education i participated in a project based on apache mina where we try to wrap some data from RDBMS into LDAP entities. We spend a lot of time for testing our LDAP server. Directory-proxy project can simplify tasks of testing application which use LDAP servers, or for testing LDAP servers.

About me

I am a student of Kursk State University, also i worked as a Java developer for two years. During my work i participated in two web projects (www.appek.org, b4u.whiteants.net) and many desktop projects, i also fulfilled all requirements for SCJP exam, so i have approved base knowledge of Java. Now i am preparing to scbcd exam. I like Java because it is a very flexible platform and it gives an opportunity to develop application using modern technologies of programming (unit testing, soa). Java code can be well described with UML, during my work i understood, that timeline and good documentation is a half of success.

KirillKosinov/GSoC2009/directory-proxy (last edited 2009-09-20 23:36:18 by localhost)