Exemple #1
0
def respond_search_done(message_id):
    res = SearchResultDone()
    res['resultCode'] = ResultCode('success')
    res['matchedDN'] = ''
    res['diagnosticMessage'] = ''

    msg = LDAPMessage()
    msg['messageID'] = MessageID(message_id)
    msg['protocolOp'] = ProtocolOp().setComponentByName('searchResDone', res)
    return msg
Exemple #2
0
def respond_bind(message_id):
    res = BindResponse()
    res['resultCode'] = ResultCode('success')
    res['matchedDN'] = ''
    res['diagnosticMessage'] = ''

    msg = LDAPMessage()
    msg['messageID'] = MessageID(message_id)
    msg['protocolOp'] = ProtocolOp().setComponentByName('bindResponse', res)
    return msg
Exemple #3
0
    def encapsulate_ldap_message(message_id, obj_name, obj, controls=None):
        ldap_message = LDAPMessage()
        ldap_message['messageID'] = MessageID(message_id)
        ldap_message['protocolOp'] = ProtocolOp().setComponentByName(obj_name, obj)

        msg_controls = build_controls_list(controls)
        if msg_controls:
            ldap_message['controls'] = msg_controls

        return ldap_message
Exemple #4
0
def bind(message_id, name, password):
    req = BindRequest()
    req['version'] = Version(3)
    req['name'] = name
    req['authentication'] = \
        AuthenticationChoice().setComponentByName('simple', Simple(password))

    msg = LDAPMessage()
    msg['messageID'] = MessageID(message_id)
    msg['protocolOp'] = ProtocolOp().setComponentByName('bindRequest', req)
    return msg
Exemple #5
0
def respond_search_entry(message_id, name, attributes):
    res = SearchResultEntry()
    res['object'] = LDAPDN(name)
    res['attributes'] = PartialAttributeList()

    for i, (k, v) in enumerate(attributes.items()):
        res['attributes'][i] = PartialAttribute()
        res['attributes'][i]['type'] = AttributeDescription(k)
        res['attributes'][i]['vals'] = Vals()
        res['attributes'][i]['vals'][0] = AttributeValue(v)

    msg = LDAPMessage()
    msg['messageID'] = MessageID(message_id)
    msg['protocolOp'] = ProtocolOp().setComponentByName('searchResEntry', res)
    return msg
Exemple #6
0
def build_ldap_message(message_id, response_type, response, controls=None):
    # LDAPMessage ::= SEQUENCE {
    # messageID       MessageID,
    #     protocolOp      CHOICE {
    #         bindRequest           BindRequest,
    #         bindResponse          BindResponse,
    #         unbindRequest         UnbindRequest,
    #         searchRequest         SearchRequest,
    #         searchResEntry        SearchResultEntry,
    #         searchResDone         SearchResultDone,
    #         searchResRef          SearchResultReference,
    #         modifyRequest         ModifyRequest,
    #         modifyResponse        ModifyResponse,
    #         addRequest            AddRequest,
    #         addResponse           AddResponse,
    #         delRequest            DelRequest,
    #         delResponse           DelResponse,
    #         modDNRequest          ModifyDNRequest,
    #         modDNResponse         ModifyDNResponse,
    #         compareRequest        CompareRequest,
    #         compareResponse       CompareResponse,
    #         abandonRequest        AbandonRequest,
    #         extendedReq           ExtendedRequest,
    #         extendedResp          ExtendedResponse,
    #         ...,
    #         intermediateResponse  IntermediateResponse },
    #     controls       [0] Controls OPTIONAL }

    ldap_message = LDAPMessage()
    ldap_message['messageID'] = MessageID(message_id)
    ldap_message['protocolOp'] = ProtocolOp().setComponentByName(
        response_type, response)
    message_controls = build_controls_list(controls)
    if message_controls is not None:
        ldap_message['controls'] = message_controls

    return ldap_message