Class NoticeOfDisconnect
- java.lang.Object
-
- org.apache.directory.api.ldap.model.message.AbstractMessage
-
- org.apache.directory.api.ldap.model.message.AbstractResponse
-
- org.apache.directory.api.ldap.model.message.AbstractResultResponse
-
- org.apache.directory.api.ldap.model.message.AbstractExtendedResponse
-
- org.apache.directory.api.ldap.model.message.extended.NoticeOfDisconnect
-
- All Implemented Interfaces:
ExtendedResponse
,Message
,Response
,ResultResponse
public final class NoticeOfDisconnect extends AbstractExtendedResponse
An extended operation intended for notifying clients of upcoming disconnection. Here's what RFC 2251 has to say about it:Section 4.1.1 (Small snippet on sending NoD) If the server receives a PDU from the client in which the LDAPMessage SEQUENCE tag cannot be recognized, the messageID cannot be parsed, the tag of the protocolOp is not recognized as a request, or the encoding structures or lengths of data fields are found to be incorrect, then the server MUST return the notice of disconnection described in section 4.4.1, with resultCode protocolError, and immediately close the connection. In other cases that the server cannot parse the request received by the client, the server MUST return an appropriate response to the request, with the resultCode set to protocolError. ... 4.4. Unsolicited Notification An unsolicited notification is an LDAPMessage sent from the server to the client which is not in response to any LDAPMessage received by the server. It is used to signal an extraordinary condition in the server or in the connection between the client and the server. The notification is of an advisory nature, and the server will not expect any response to be returned from the client. The unsolicited notification is structured as an LDAPMessage in which the messageID is 0 and protocolOp is of the extendedResp form. The responseName field of the ExtendedResponse is present. The LDAPOID value MUST be unique for this notification, and not be used in any other situation. One unsolicited notification is defined in this document. 4.4.1. Notice of Disconnection This notification may be used by the server to advise the client that the server is about to close the connection due to an error condition. Note that this notification is NOT a response to an unbind requested by the client: the server MUST follow the procedures of section 4.3. This notification is intended to assist clients in distinguishing between an error condition and a transient network failure. As with a connection close due to network failure, the client MUST NOT assume that any outstanding requests which modified the directory have succeeded or failed. The responseName is 1.3.6.1.4.1.1466.20036, the response field is absent, and the resultCode is used to indicate the reason for the disconnection. The following resultCode values are to be used in this notification: - protocolError: The server has received data from the client in which the LDAPMessage structure could not be parsed. - strongAuthRequired: The server has detected that an established underlying security association protecting communication between the client and server has unexpectedly failed or been compromised. - unavailable: This server will stop accepting new connections and operations on all existing connections, and be unavailable for an extended period of time. The client may make use of an alternative server. After sending this notice, the server MUST close the connection. After receiving this notice, the client MUST NOT transmit any further on the connection, and may abruptly close the connection.
- Author:
- Apache Directory Project
-
-
Field Summary
Fields Modifier and Type Field Description static String
EXTENSION_OID
The OID of the NotiveOfDisconnect extended operation.static NoticeOfDisconnect
PROTOCOLERROR
The single instance with protocolError result code.static NoticeOfDisconnect
STRONGAUTHREQUIRED
The single instance with strongAuthRequired result code.static NoticeOfDisconnect
UNAVAILABLE
The single instance with unavailable result code.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static NoticeOfDisconnect
createNoticeOfDisconnect(ResultCodeEnum rcode)
Create a NoD associated with a result code enumboolean
equals(Object obj)
Checks to see if an object equals this ExtendedRequest.byte[]
getResponse()
Gets the reponse OID specific encoded response values.int
hashCode()
void
setResponse(byte[] value)
Sets the response OID specific encoded response values.void
setResponseName(String oid)
Sets the OID uniquely identifying this extended response (a.k.a. its name).-
Methods inherited from class org.apache.directory.api.ldap.model.message.AbstractExtendedResponse
getResponseName, toString
-
Methods inherited from class org.apache.directory.api.ldap.model.message.AbstractResultResponse
getLdapResult
-
Methods inherited from class org.apache.directory.api.ldap.model.message.AbstractMessage
addAllControls, addControl, get, getControl, getControls, getMessageId, getType, hasControl, put, removeControl, setMessageId, toString
-
Methods inherited from interface org.apache.directory.api.ldap.model.message.Message
addAllControls, addControl, get, getControl, getControls, getMessageId, getType, hasControl, put, removeControl, setMessageId
-
Methods inherited from interface org.apache.directory.api.ldap.model.message.ResultResponse
getLdapResult
-
-
-
-
Field Detail
-
EXTENSION_OID
public static final String EXTENSION_OID
The OID of the NotiveOfDisconnect extended operation.- See Also:
- Constant Field Values
-
UNAVAILABLE
public static final NoticeOfDisconnect UNAVAILABLE
The single instance with unavailable result code.
-
PROTOCOLERROR
public static final NoticeOfDisconnect PROTOCOLERROR
The single instance with protocolError result code.
-
STRONGAUTHREQUIRED
public static final NoticeOfDisconnect STRONGAUTHREQUIRED
The single instance with strongAuthRequired result code.
-
-
Method Detail
-
createNoticeOfDisconnect
public static NoticeOfDisconnect createNoticeOfDisconnect(ResultCodeEnum rcode)
Create a NoD associated with a result code enum- Parameters:
rcode
- The result code- Returns:
- The created NoticeOfDisconnect
-
getResponse
public byte[] getResponse()
Gets the reponse OID specific encoded response values.- Returns:
- the response specific encoded response values.
-
setResponse
public void setResponse(byte[] value)
Sets the response OID specific encoded response values.- Parameters:
value
- the response specific encoded response values.
-
setResponseName
public void setResponseName(String oid)
Sets the OID uniquely identifying this extended response (a.k.a. its name).- Specified by:
setResponseName
in interfaceExtendedResponse
- Overrides:
setResponseName
in classAbstractExtendedResponse
- Parameters:
oid
- the OID of the extended response type.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classAbstractExtendedResponse
- Returns:
- the instance's hash code
- See Also:
Object.hashCode()
-
equals
public boolean equals(Object obj)
Checks to see if an object equals this ExtendedRequest.- Overrides:
equals
in classAbstractExtendedResponse
- Parameters:
obj
- the object to be checked for equality- Returns:
- true if the obj equals this ExtendedRequest, false otherwise
-
-