[ 
https://issues.apache.org/jira/browse/KNOX-3341?focusedWorklogId=1026103&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-1026103
 ]

ASF GitHub Bot logged work on KNOX-3341:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 21/Jun/26 00:19
            Start Date: 21/Jun/26 00:19
    Worklog Time Spent: 10m 
      Work Description: handavid opened a new pull request, #1274:
URL: https://github.com/apache/knox/pull/1274

   (It is very **important** that you created an Apache Knox JIRA for this 
change and that the PR title/commit message includes the Apache Knox JIRA ID!)
   
   [KNOX-3341](https://issues.apache.org/jira/browse/KNOX-3341) - LDAP Proxy 
handles general search requests
   
   ## What changes were proposed in this pull request?
   
   This commit improves the behavior of the LdapProxyBackend to handle broader 
search requests such as retrieving all users, all groups, or filtering by 
attributes other than uid.
   
   A "search" method was added to the LdapBackend interface to support broader 
search requests.
   
   LdapProxyBackend implements this method by converting the search base, 
objectclass, and user identifier attribute from proxy values to values 
recognized by the remote LDAP backend. LdapProxyBackend.createProxyEntry was 
factored out into a new RemoteSchemaConverter class. This class also contains 
methods for converting the search filter and DNs. The conversions in the search 
filter are further supported by a new FilterMappingVisitor class which will 
traverse the ExprNode tree and replace values as needed.
   Result entries are likewise converted from the remote values to the proxy 
values. As part of the mapping, the AD 'userAccountControl' attribute type is 
mapped into the 'nsAccountLock' attribute type. A new DisabledUserInterceptor 
is implemented to perform this conversion. This interceptor can also be 
configured to remove disabled entries from the results.
   
   Group membership retrieval is modified to use 'getUserGroupEntries' as a 
common starting point then branch into separate codepaths for using 'memberOf' 
or not.
   
   FileBackend simply maps the filter back into user search.
   
   ## How was this patch tested?
   
   Unit tests were added.
   The new features were manually exercised using commands such as:
   ```
   ldapsearch -v -x -H ldap://localhost:3890 -b 'ou=people,DC=proxy,DC=com' 
'(&(objectclass=inetorgperson)(uid=test*))'
   ldapsearch -v -x -H ldap://localhost:3890 -b 'ou=groups,DC=proxy,DC=com' 
'(objectclass=groupofnames)'
   ```
   
   ## Integration Tests
   (Please add or update integration tests 
[`.github/workflows/tests`](.github/workflows/tests) for the feature you are 
adding. If no unit test is added, please explain why. Check out 
[`.github/workflows/tests/README.md`](./workflows/tests/README.md) for 
instructions)
   
   ## UI changes
   no UI changes
   
   Please review [Knox Contributing 
Process](https://cwiki.apache.org/confluence/display/KNOX/Contribution+Process#ContributionProcess-GithubWorkflow)
 before opening a pull request.
   




Issue Time Tracking
-------------------

            Worklog Id:     (was: 1026103)
    Remaining Estimate: 0h
            Time Spent: 10m

> Enhance LDAP Proxy to support more general search parameters
> ------------------------------------------------------------
>
>                 Key: KNOX-3341
>                 URL: https://issues.apache.org/jira/browse/KNOX-3341
>             Project: Apache Knox
>          Issue Type: Improvement
>          Components: Server
>            Reporter: David Han
>            Assignee: David Han
>            Priority: Major
>             Fix For: 3.0.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> LDAP search with the LDAP Proxy is focused around user retrieval based on 
> uid. This should be enhanced to better support the search filter and returned 
> attribute parameters commonly used in LDAP search.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to