> On Jan. 28, 2015, 12:33 p.m., Vinod Kone wrote:
> > Can you expand description on why you designed the authenticator inteface 
> > this way? Particularly, expand on "The initial design and implementation of 
> > the authenticator module interface caused issues and was not optimal for 
> > heavy lifting setup of external dependencies" and "The new design also gets 
> > us back on track to the goal of makeing SASL a soft dependency of mesos".
> > 
> > An issue with the new design is that now users have to implement an 
> > Authenticator and an AuthenticatorSession to implement a new type of 
> > authenticator. Also, we lost the symmetry between authenticatee and 
> > authenticator. An Authenticatee now communicates with AuthenticatorSession 
> > instead of Authenticator, which is confusing. Is the plan to refactor the 
> > Authenticatee similarly?

We need to load/initialize the auxprop plugin at most once per linux process, 
so we need the authenticator to live for the lifetime of the master, but we 
need the sasl connection to be created/disposed with the lifetime of a 
per-authenticatee auth session. We could probably get away with hiding the 
Session variable underneath the Authenticator interface, and just call 
Authenticator::authenticate(pid) which will spin up a new session/connection 
and Authenticator::cancel/complete(pid) which erases/disposes the 
session/connection. The sasl-based authenticators will then manage the 
pid->session map internally, and other non-sasl authenticators don't have to 
know about that implementation detail. (I think I mentioned this before, but 
Till will have to remind me why we decided against it.)


> On Jan. 28, 2015, 12:33 p.m., Vinod Kone wrote:
> > src/master/master.cpp, lines 4173-4190
> > <https://reviews.apache.org/r/27760/diff/12/?file=834181#file834181line4173>
> >
> >     Hmm. I think this is a serious enough error that the master should fail 
> > during initilization rather than sending an error message here. Do you have 
> > use cases in mind that warranted this?

The default authenticator is CRAM-MD5 rather than none, and that authenticator 
fails to initialize if no credentials are provided (or if auxprops cannot be 
loaded). Since the default parameters specify CRAM-MD5 authenticator, no 
required authentication, and no credentials, we must support this starting 
successfully, although we do log a warning ("Only non-authenticating frameworks 
and slaves are allowed to connect. Authentication is disabled: error_message"). 
In this case, we must allow non-authenticating frameworks/slaves to register 
without authentication, but we will return an AuthenticationError if they 
actually try to authenticate. This is the same behavior as before.
For scenarios where the authenticator fails to load, but authentication is 
explicitly enabled for frameworks/slaves, we do exit the master during 
initialization "Cannot start master with authentication enabled: error_message")


> On Jan. 28, 2015, 12:33 p.m., Vinod Kone wrote:
> > src/master/master.cpp, lines 4193-4203
> > <https://reviews.apache.org/r/27760/diff/12/?file=834181#file834181line4193>
> >
> >     IIRC, sending an AuthenticationErrorMessage here causes the driver to 
> > simply retry the authentication and thus fall into a retry loop?

Truth. There is a TODO about at least adding a backoff, but maybe we should 
also attempt registering without authentication?
Maybe authentication shouldn't even cause retries under certain scenarios where 
it will never eventually succeed (bad credentials, no authenticator).


- Adam


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27760/#review70051
-----------------------------------------------------------


On Jan. 26, 2015, 12:49 a.m., Till Toenshoff wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27760/
> -----------------------------------------------------------
> 
> (Updated Jan. 26, 2015, 12:49 a.m.)
> 
> 
> Review request for mesos, Adam B, Kapil Arya, Niklas Nielsen, and Vinod Kone.
> 
> 
> Bugs: MESOS-2050
>     https://issues.apache.org/jira/browse/MESOS-2050
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> The initial design and implementation of the authenticator module interface 
> caused issues and was not optimal for heavy lifting setup of external 
> dependencies. By introducing a two fold design, this has been decoupled from 
> the authentication message processing. The new design also gets us back on 
> track to the goal of makeing SASL a soft dependency of mesos.
> 
> 
> Diffs
> -----
> 
>   src/authentication/authenticator.hpp 460494a 
>   src/authentication/cram_md5/authenticator.hpp d739a02 
>   src/authentication/cram_md5/auxprop.hpp b894386 
>   src/authentication/cram_md5/auxprop.cpp cf503a2 
>   src/master/master.hpp 1d342e5 
>   src/master/master.cpp bda8fda 
>   src/tests/cram_md5_authentication_tests.cpp a356aa1 
> 
> Diff: https://reviews.apache.org/r/27760/diff/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Till Toenshoff
> 
>

Reply via email to