mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Greg Mann (JIRA)" <>
Subject [jira] [Commented] (MESOS-7222) Load authenticator modules as singletons
Date Wed, 08 Mar 2017 21:06:38 GMT


Greg Mann commented on MESOS-7222:

cc [~arojas] [~tillt] [~karya]

> Load authenticator modules as singletons
> ----------------------------------------
>                 Key: MESOS-7222
>                 URL:
>             Project: Mesos
>          Issue Type: Improvement
>          Components: security
>            Reporter: Greg Mann
>              Labels: authentication, libprocess, mesosphere, tech-debt
> The Mesos master/agent code currently loads separate instances of an authenticator module
for each realm that the module is installed into. {{initializeHttpAuthenticators()}} is [called
multiple times|],
and each invocation [creates an instance|]
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}
> Note that the current situation would cause a legitimate bug in the case of a stateful
authenticator module which is dynamically updated at runtime. This could lead to inconsistent
state across the module instances, when the author intended for them to share a single global

This message was sent by Atlassian JIRA

View raw message