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)