shashank created CAMEL-26887:
--------------------------------

             Summary: camel-zookeeper-master - ZookeeperGroupSupport reuses the 
client it closed, closes a group factory of the registry, and ignores 
zookeeper.password
                 Key: CAMEL-26887
                 URL: https://issues.apache.org/jira/browse/CAMEL-26887
             Project: Camel
          Issue Type: Bug
          Components: camel-zookeeper-master
            Reporter: shashank
            Assignee: shashank


Follow-ups named in CAMEL-26870; on main. {{ZookeeperGroupSupport}} is the base 
of the group listeners of the master consumer and of {{MasterRoutePolicy}}, and 
of the component's own support.

* *A closed client is reused after a restart.* When no curator is set, the 
group factory strategy calls {{call()}}, which builds and starts a 
{{CuratorFramework}} and stores it in the {{curator}} field; the group factory 
closes it when the support stops. A start of the same support after its stop 
finds the closed client in the field and uses it: the group cannot connect. 
That is the component's own support when the component instance outlives a 
CamelContext stop (a {{MasterComponent}} bean of the registry, started again), 
or a {{ZookeeperGroupSupport}} used directly; a route restart creates a new 
support.
* *A group factory of the registry is closed by every stop.* A 
{{ManagedGroupFactory}} found in the registry (or set on the support) is closed 
and dropped in {{doStop}}, although the component and all consumers and route 
policies find the same bean: the stop of one route closes the factory (and, 
when it owns it, the client) of the others.
* *The {{zookeeper.password}} system property is ignored.* {{call()}} reads it 
when no password is configured but discards the value 
({{System.getProperty(ZOOKEEPER_PASSWORD);}}), so the client connects without 
the digest authorization.

*Proposal*: remember the client {{call()}} created and the group factory 
{{doStart}} created; {{doStop}} closes and drops only those (a start after the 
stop creates new ones), and keeps a client or a factory of the registry or set 
by the user; assign the system property to the password.

_Filed with Claude Code on behalf of allthingssecurity._



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to