Greg Mann created MESOS-7222:
--------------------------------
Summary: Load authenticator modules as singletons
Key: MESOS-7222
URL: https://issues.apache.org/jira/browse/MESOS-7222
Project: Mesos
Issue Type: Improvement
Components: security
Reporter: Greg Mann
The Mesos master/agent code currently loads separate instances of an
authenticator module for each realm that it's installed into.
{{initializeHttpAuthenticators()}} is [called multiple
times|https://github.com/apache/mesos/blob/a310bcc10b872b44fe6083756030daa96c21d141/src/master/master.cpp#L599-L638],
and each invocation [creates an
instance|https://github.com/apache/mesos/blob/a310bcc10b872b44fe6083756030daa96c21d141/src/common/http.cpp#L987-L988]
of the module.
It would be better to create a singleton of each authenticator module. These
could be stored in a map, indexed by the module name. Note that libprocess's
{{setAuthenticator()}} helper currently accepts an {{Owned<Authenticator>}} and
takes ownership of each module instance. In order to pass ownership of
authenticator singletons to libprocess, {{setAuthenticator}} could be changed
to something like the following:
{code}
Future <Nothing> setAuthenticator(
const map<string, Owned<Authenticator>> authenticators,
const map<string, string> authenticatorRealms);
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)