[keycloak-dev] Optional authenticator inside an alternative subflow, how and when is it invoked?
Marek Posolda
mposolda at redhat.com
Thu Jun 9 02:54:29 EDT 2016
For more complicated conditional workflows like this, you can always use
clientSession notes and save/read the state from here. For example
authenticator1 will call something like this if "particular case" happened:
clientSession.setNote("someNote", "particularCaseHappened");
And authenticator2 can then use something like this in the beginning of
method "authenticate" :
if ("particularCaseHappened".equals(clientSession.getNote("someNote") {
log.info("Ignoring this authenticator based on fact that
'particular case' from authenticator1 happened");
context.attempted();
return;
}
Marek
On 09/06/16 03:48, Rashmi Singh wrote:
> I have one more question on this. I have my own implementation of two
> authenticators now: Username Authenticator (REQUIRED) and OTP
> authenticator (OPTIONAL) under an ALTERNATIVE subflow. The second
> optional authenticator has Authenticator.configuredFor returns false
> (I have this because I do not want this to be invoked only when the
> user is set in the context already). Now, the second authenticator is
> invoked which is good. But, there is one case in my usernamePassword
> Authenticator for which the optional OTPAuthenticator should not be
> invoked. Can this be achieved? Other than that case, OTP authenticator
> should be invoked as now. Can I stop this second optional
> OTPAuthenticator from being invoked for a particular case in my
> UsernamePassword authenticator?
>
> On Wed, Jun 8, 2016 at 2:04 PM, Rashmi Singh <singhrasster at gmail.com
> <mailto:singhrasster at gmail.com>> wrote:
>
> OK, I am clear about this point now. It does enter the second
> optional authenticator, so it is good now. Thank you
>
> On Wed, Jun 8, 2016 at 10:43 AM, Rashmi Singh
> <singhrasster at gmail.com <mailto:singhrasster at gmail.com>> wrote:
>
> In general, if we have any two authenticators under
> ALTERNATIVE flow, the second being OPTIONAL, is the optional
> one invoked only when context.setUser(user) is set in the
> first authenticator? otherwise, the second OPTIONAL
> authenticator is never invoked (irrespective of whether
> Authenticator.configuredFor returns true or false) at all? Is
> there a way to invoke the optional authenticator even when
> context.setUser(user) was never done in the first authenticator?
>
> On Wed, Jun 8, 2016 at 5:21 AM, Marek Posolda
> <mposolda at redhat.com <mailto:mposolda at redhat.com>> wrote:
>
> Currently the OPTIONAL means that authenticator is used
> just if it's configured for particular user (
> Authenticator.configuredFor returns true for that user).
> In case of OTP, it means that OTP form is shown just if
> OTP is configured for particular user.
>
> It looks that OPTIONAL authenticator needs to return
> "requiresUser" with true, otherwise if it doesn't require
> user the error will be returned (even if authenticator is
> OPTIONAL).
>
> Marek
>
>
> On 07/06/16 17:29, Rashmi Singh wrote:
>> From the keycloak documentation and
>> https://keycloak.github.io/docs/userguide/keycloak-server/html/auth_spi.html
>>
>>
>> it is not very clear to me what the OPTIONAL setting for
>> an execution mean.
>>
>> For example, when we have the following:
>>
>> Forms Subflow - ALTERNATIVE
>> Username/Password Form - REQUIRED
>> OTP Password Form - OPTIONAL
>>
>>
>> When can it enter the Optional OTP form? Do we need to
>> add some code (some condition ?) in the
>> UsernamePasswordAuthentication Code, so it enters the
>> optional OTP form authenticator? Or something else? I am
>> not so clear about the concept of this optional field and
>> how to enter it. Can someone please explain this in detail?
>>
>>
>> _______________________________________________
>> keycloak-dev mailing list
>> keycloak-dev at lists.jboss.org
>> <mailto:keycloak-dev at lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/keycloak-dev
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-dev/attachments/20160609/8441a96f/attachment.html
More information about the keycloak-dev
mailing list