mirror of
				https://github.com/nitnelave/lldap.git
				synced 2023-04-12 14:25:13 +00:00 
			
		
		
		
	ldap: Improve debug messages
This commit is contained in:
		
							parent
							
								
									a6f8ba45b6
								
							
						
					
					
						commit
						08d0a1dc5b
					
				@ -12,7 +12,7 @@ use ldap3_server::proto::{
 | 
			
		||||
    LdapFilter, LdapOp, LdapPartialAttribute, LdapPasswordModifyRequest, LdapResult,
 | 
			
		||||
    LdapResultCode, LdapSearchRequest, LdapSearchResultEntry, LdapSearchScope,
 | 
			
		||||
};
 | 
			
		||||
use log::*;
 | 
			
		||||
use log::{debug, warn};
 | 
			
		||||
use std::convert::TryFrom;
 | 
			
		||||
 | 
			
		||||
fn make_dn_pair<I>(mut iter: I) -> Result<(String, String)>
 | 
			
		||||
@ -290,7 +290,7 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub async fn do_bind(&mut self, request: &LdapBindRequest) -> (LdapResultCode, String) {
 | 
			
		||||
        info!(r#"Received bind request for "{}""#, &request.dn);
 | 
			
		||||
        debug!(r#"Received bind request for "{}""#, &request.dn);
 | 
			
		||||
        let user_id = match get_user_id_from_distinguished_name(
 | 
			
		||||
            &request.dn,
 | 
			
		||||
            &self.base_dn,
 | 
			
		||||
@ -396,10 +396,10 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
 | 
			
		||||
            && request.scope == LdapSearchScope::Base
 | 
			
		||||
            && request.filter == LdapFilter::Present("objectClass".to_string())
 | 
			
		||||
        {
 | 
			
		||||
            info!("Received rootDSE request");
 | 
			
		||||
            debug!("Received rootDSE request");
 | 
			
		||||
            return vec![root_dse_response(&self.base_dn_str), make_search_success()];
 | 
			
		||||
        }
 | 
			
		||||
        info!("Received search request: {:?}", &request);
 | 
			
		||||
        debug!("Received search request: {:?}", &request);
 | 
			
		||||
        let dn_parts = match parse_distinguished_name(&request.base) {
 | 
			
		||||
            Ok(dn) => dn,
 | 
			
		||||
            Err(_) => {
 | 
			
		||||
@ -411,6 +411,10 @@ impl<Backend: BackendHandler + LoginHandler + OpaqueHandler> LdapHandler<Backend
 | 
			
		||||
        };
 | 
			
		||||
        if !is_subtree(&dn_parts, &self.base_dn) {
 | 
			
		||||
            // Search path is not in our tree, just return an empty success.
 | 
			
		||||
            warn!(
 | 
			
		||||
                "The specified search tree {:?} is not under the common subtree {:?}",
 | 
			
		||||
                &dn_parts, &self.base_dn
 | 
			
		||||
            );
 | 
			
		||||
            return vec![make_search_success()];
 | 
			
		||||
        }
 | 
			
		||||
        let mut results = Vec::new();
 | 
			
		||||
@ -1278,6 +1282,20 @@ mod tests {
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[tokio::test]
 | 
			
		||||
    async fn test_search_wrong_base() {
 | 
			
		||||
        let mut ldap_handler = setup_bound_handler(MockTestBackendHandler::new()).await;
 | 
			
		||||
        let request = make_search_request(
 | 
			
		||||
            "ou=users,dc=example,dc=com",
 | 
			
		||||
            LdapFilter::And(vec![]),
 | 
			
		||||
            vec!["objectClass"],
 | 
			
		||||
        );
 | 
			
		||||
        assert_eq!(
 | 
			
		||||
            ldap_handler.do_search(&request).await,
 | 
			
		||||
            vec![make_search_success()]
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[tokio::test]
 | 
			
		||||
    async fn test_search_unsupported_filters() {
 | 
			
		||||
        let mut ldap_handler = setup_bound_handler(MockTestBackendHandler::new()).await;
 | 
			
		||||
 | 
			
		||||
@ -29,6 +29,9 @@ where
 | 
			
		||||
    match session.handle_ldap_message(msg.op).await {
 | 
			
		||||
        None => return Ok(false),
 | 
			
		||||
        Some(result) => {
 | 
			
		||||
            if result.is_empty() {
 | 
			
		||||
                debug!("No response");
 | 
			
		||||
            }
 | 
			
		||||
            for result_op in result.into_iter() {
 | 
			
		||||
                debug!("Replying with LDAP op: {:?}", &result_op);
 | 
			
		||||
                resp.send(LdapMsg {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user