Skip to content

KNOX-3332: Add listeners on gateway config changes#1243

Open
hanicz wants to merge 2 commits into
apache:masterfrom
hanicz:KNOX-3332
Open

KNOX-3332: Add listeners on gateway config changes#1243
hanicz wants to merge 2 commits into
apache:masterfrom
hanicz:KNOX-3332

Conversation

@hanicz
Copy link
Copy Markdown
Contributor

@hanicz hanicz commented May 29, 2026

KNOX-3332 - Add listeners on gateway config changes for observers

What changes were proposed in this pull request?

  • Adds an observer pattern so clients are notified if gateway config changes.
  • Knox LDAP Server Manager reloads the LDAP configs if there are changes and restart the LDAP service.

How was this patch tested?

Unit tests

Manual test:
Started a local Knox and LDAP instance. Changed the knoxsso ldap port to 33390 and tried to login into the homepage which failed. Updated the gateway-reloadable.xml with the new port 33395 and I was able to log into the homepage.

2026-05-29 11:26:10,426  INFO  knox.gateway (GatewayServer.java:refreshGatewayConfig(275)) - Refreshed gateway config
2026-05-29 11:26:10,426  INFO  services.ldap (KnoxLDAPServerManager.java:onGatewayConfigChanged(109)) - Reloading LDAP configuration
2026-05-29 11:26:10,427  INFO  services.ldap (KnoxLDAPServerManager.java:stop(218)) - Stopping LDAP service on port 33,390
2026-05-29 11:26:10,445  INFO  services.ldap (KnoxLDAPServerManager.java:stop(236)) - LDAP service stopped successfully
2026-05-29 11:26:10,448  INFO  services.ldap (BackendFactory.java:createBackend(39)) - Loading backend: ldap (via ServiceLoader)
2026-05-29 11:26:10,448  INFO  services.ldap (LdapProxyBackend.java:initialize(140)) - Loading backend: ldap (via Proxying dc=hadoop,dc=apache,dc=org to ldap://localhost:33389 (dc=hadoop,dc=apache,dc=org) with uid attribute using group searches)
2026-05-29 11:26:10,449  INFO  services.ldap (LdapProxyBackend.java:initializeConnectionPool(180)) - Loading backend: ldap (via Initialized connection pool with maxActive=8)
2026-05-29 11:26:10,449  INFO  services.ldap (KnoxLDAPServerManager.java:start(131)) - Starting LDAP service on port 33,395 with base DN: dc=hadoop,dc=apache,dc=org
2026-05-29 11:26:10,540  INFO  services.ldap (KnoxLDAPServerManager.java:start(190)) - LDAP service started successfully on port 33,395

gateway-site.xml

    <!-- KnoxLDAP Service Configuration -->
    <property>
        <name>gateway.ldap.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>gateway.ldap.port</name>
        <value>33390</value>
    </property>
    <property>
        <name>gateway.ldap.base.dn</name>
        <value>dc=hadoop,dc=apache,dc=org</value>
    </property>
    <property>
        <name>gateway.ldap.backend.type</name>
        <value>ldap</value>
    </property>

    <!-- LDAP Backend specific configuration (proxying to demo ldap) -->
    <property>
        <name>gateway.ldap.backend.ldap.url</name>
        <value>ldap://localhost:33389</value>
    </property>
    <property>
        <name>gateway.ldap.backend.ldap.remoteBaseDn</name>
        <value>dc=hadoop,dc=apache,dc=org</value>
    </property>
    <property>
        <name>gateway.ldap.backend.ldap.systemUsername</name>
        <value>uid=guest,ou=people,dc=hadoop,dc=apache,dc=org</value>
    </property>
    <property>
        <name>gateway.ldap.backend.ldap.systemPassword</name>
        <value>guest-password</value>
    </property>
    <property>
        <name>gateway.ldap.backend.ldap.userSearchBase</name>
        <value>ou=people,dc=hadoop,dc=apache,dc=org</value>
    </property>
    <property>
        <name>gateway.ldap.backend.ldap.groupSearchBase</name>
        <value>ou=groups,dc=hadoop,dc=apache,dc=org</value>
    </property>
    <property>
        <name>gateway.ldap.backend.ldap.groupMemberAttribute</name>
        <value>member</value>
    </property>

knoxsso.xml:

<param>
  <name>main.ldapRealm.contextFactory.url</name>
  <value>ldap://localhost:33395</value>
</param>  

gateway-reloadable.xml

<configuration>
    <property>
        <name>gateway.ldap.port</name>
        <value>33395</value>
    </property>
</configuration>

Integration Tests

N/A

UI changes

N/A

@github-actions
Copy link
Copy Markdown

Test Results

21 tests   21 ✅  2s ⏱️
 1 suites   0 💤
 1 files     0 ❌

Results for commit e507d5c.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant