org.apache.directory.server.ldap.handlers
Class LdapRequestHandler<T extends org.apache.directory.shared.ldap.message.Request>

java.lang.Object
  extended by org.apache.directory.server.ldap.handlers.LdapRequestHandler<T>
All Implemented Interfaces:
org.apache.mina.handler.demux.MessageHandler<T>
Direct Known Subclasses:
AbandonHandler, BindHandler, ExtendedHandler, ReferralAwareRequestHandler, UnbindHandler

public abstract class LdapRequestHandler<T extends org.apache.directory.shared.ldap.message.Request>
extends java.lang.Object
implements org.apache.mina.handler.demux.MessageHandler<T>

A base class for all LDAP request handlers.

Version:
$Rev: 541827 $
Author:
Apache Directory Project

Field Summary
protected  LdapService ldapService
          The reference on the Ldap server instance
 
Fields inherited from interface org.apache.mina.handler.demux.MessageHandler
NOOP
 
Constructor Summary
LdapRequestHandler()
           
 
Method Summary
 LdapService getLdapServer()
           
abstract  void handle(LdapSession session, T message)
          Handle a Ldap message associated with a session
 boolean isConfidentialityRequirementSatisfied(org.apache.mina.common.IoSession session)
          Checks to see if confidentiality requirements are met.
 void messageReceived(org.apache.mina.common.IoSession session, T message)
          Handle a LDAP message received during a session.
 void rejectWithoutConfidentiality(org.apache.mina.common.IoSession session, org.apache.directory.shared.ldap.message.ResultResponse resp)
           
 void setLdapServer(LdapService ldapService)
          Associates a Ldap server instance to the message handler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ldapService

protected LdapService ldapService
The reference on the Ldap server instance

Constructor Detail

LdapRequestHandler

public LdapRequestHandler()
Method Detail

getLdapServer

public final LdapService getLdapServer()
Returns:
The associated ldap server instance

setLdapServer

public final void setLdapServer(LdapService ldapService)
Associates a Ldap server instance to the message handler

Parameters:
ldapService - the associated ldap server instance

isConfidentialityRequirementSatisfied

public final boolean isConfidentialityRequirementSatisfied(org.apache.mina.common.IoSession session)
Checks to see if confidentiality requirements are met. If the LdapService requires confidentiality and the SSLFilter is engaged this will return true. If confidentiality is not required this will return true. If confidentially is required and the SSLFilter is not engaged in the IoFilterChain this will return false. This method is used by handlers to determine whether to send back ResultCodeEnum.CONFIDENTIALITY_REQUIRED error responses back to clients.

Parameters:
session - the MINA IoSession to check for TLS security
Returns:
true if confidentiality requirement is met, false otherwise

rejectWithoutConfidentiality

public void rejectWithoutConfidentiality(org.apache.mina.common.IoSession session,
                                         org.apache.directory.shared.ldap.message.ResultResponse resp)

messageReceived

public final void messageReceived(org.apache.mina.common.IoSession session,
                                  T message)
                           throws java.lang.Exception
Handle a LDAP message received during a session.

Specified by:
messageReceived in interface org.apache.mina.handler.demux.MessageHandler<T extends org.apache.directory.shared.ldap.message.Request>
Parameters:
session - the user session created when the user first connected to the server
message - the LDAP message received. Can be any of the LDAP Request
Throws:
java.lang.Exception - the thrown exception if something went wrong during the message processing

handle

public abstract void handle(LdapSession session,
                            T message)
                     throws java.lang.Exception
Handle a Ldap message associated with a session

Parameters:
session - The associated session
message - The message we have to handle
Throws:
java.lang.Exception - If there is an error during the processing of this message


Copyright © 2003-2009 Apache Software Foundation. All Rights Reserved.