[ 
https://issues.apache.org/jira/browse/CAMEL-26887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-26887 started by shashank.
----------------------------------------
> 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
>            Priority: Minor
>
> 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