Hi Maduranga,

Yes, we will have 2 objects(authenticationOptions and authenticatorParams)
inside the 2nd parameter. I have done the implementation to support this
template,

executeStep(<stepNo>, { authenticationOptions  : <authenticationOptions>,
*authenticatorParams : {local : <authenticatorName> : { <key> : <value>},*
*
   federated : <idpName> : { <key> : <value> }*
                                       },
{onSuccess: function(){<someFunction>}, onFail: function(){<someFunction>}})

Here is the sample,

function onInitialRequest(context) {
    executeStep(1,
        {
            authenticatorParams: {
              local     : {
                            "BasicAuthenticator"  :{    
                                                      "userName" : "alex",
                                                      "domain" : "localhost"
                                                    },
                            "SMSOTP"              :{  "foo" : "abc"}
                          },
              federated : {
                            "FacebookIdp" : { "foo" : "xyz"}
                          }
        },
        {
            onSuccess: function (context) {
                executeStep(2);
            }
        }
    );
}

thanks,

On Mon, Jun 18, 2018 at 9:43 AM Maduranga Siriwardena <madura...@wso2.com>
wrote:

> Hi Sagara,
>
> I think "foo" : "alex" is a parameter passed to the authenticator. And
> yes, if we can provide a little bit meaningful example it would be easier
> to understand.
>
> @Senthalan Kanagalingam <sentha...@wso2.com> , I was under the impression
> that we are providing the parameters for the authenticators as a different
> JSON object, rather than using the same authenticationOptions object which
> is intended to filter the authenticators prompted in the step. Have we
> finalized this? I think if we can provide 2 objects named "stepOptions" and
> "authenticatorParams" (we can decide the names) it would be better than
> using the same object.
>
> Thanks,
>
> On Fri, Jun 15, 2018 at 7:20 PM Sagara Gunathunga <sag...@wso2.com> wrote:
>
>>
>> Do we have authenticator  with  "foo" : "alex" ? when you provide sample
>> please make sure to provide sample closer to real world, please provide a
>> real example.
>>
>> Thanks !
>>
>> On Fri, Jun 15, 2018 at 6:56 PM, Senthalan Kanagalingam <
>> sentha...@wso2.com> wrote:
>>
>>> Hi all,
>>>
>>> We are having an update in the structure of the basic syntax. Here is a
>>> sample,
>>>
>>> function onInitialRequest(context) {
>>>     executeStep(1,
>>>         {
>>>             authenticationOptions: {
>>>               local     : {
>>>                             "BasicAuthenticator"  :{        
>>>                                                       "foo" : "alex",
>>>                                                       "domain" : "localhost"
>>>                                                     },
>>>                             "SMSOTP"              :{  "foo" : "abc"}
>>>                           },
>>>               federated : {
>>>                             "FacebookIdp" : { "foo" : "xyz"}
>>>                           }
>>>         },
>>>         {
>>>             onSuccess: function (context) {
>>>                 executeStep(2);
>>>             }
>>>         }
>>>     );
>>> }
>>>
>>> We can have 2 objects inside "authenticationOptions". In "local", we can
>>> specify the authenticator identifier and map of parameters (key-value
>>> pair). And in "federated", we can specify the parameter map for the
>>> federated identity provider.
>>>
>>> And place note that the value of the parameter has to be String.
>>>
>>> thanks,
>>>
>>> On Wed, Jun 13, 2018 at 6:49 PM Senthalan Kanagalingam <
>>> sentha...@wso2.com> wrote:
>>>
>>>> [update]
>>>>
>>>> hi all,
>>>>
>>>> We had an offline discussion and decided to change the authentication
>>>> script syntax.  We will be having an extra object in the 2nd parameter in
>>>> the executeStep which is introduced to filter the authenticators[1].
>>>> There we can specify the authenticator and parameter
>>>>
>>>> executeStep(<stepNo>, { authenticationOptions  : <listOfAuthenticators>,
>>>> *authenticatorParams : [ {authenticator : <authenticatorName>,*
>>>>
>>>> *params : { <paramKey> : <paranValue> }*
>>>>
>>>> *]*,
>>>>
>>>> {onSuccess: function(){<someFunction>}, onFail: function(){<
>>>> someFunction>}})
>>>>
>>>>
>>>>
>>>> An example will be,
>>>>
>>>> function onInitialRequest (context) {
>>>>    executeStep(1 ,{ authenticationOptions  : [{ authenticator : "Sample
>>>> HardwareKey Authenticator"},{ idp : "google" }],
>>>> authenticatorParams : [{ authenticator : "Sample HardwareKey
>>>> Authenticator",
>>>>  params : {
>>>>    "foo" : "xyz"
>>>>  }},
>>>>    { idp : "google",
>>>>   params : {
>>>>    "foo" : "abc"
>>>>  }}]
>>>>   },{
>>>>  onSuccess : function(context) {
>>>>   executeStep(2);
>>>>  }
>>>>    });
>>>> }
>>>>
>>>> In authenticator (java code), we can access the parameter map defined
>>>> by the script for that particular authenticator using getRuntimeParams()
>>>> method.
>>>>
>>>> Please share your idea about this new syntax change and the method name.
>>>>
>>>>
>>>> [1] - "[IS] Filtering authentication options of a step by script"
>>>>
>>>>
>>>> On Tue, Jun 12, 2018 at 5:32 PM Senthalan Kanagalingam <
>>>> sentha...@wso2.com> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> With an offline discussion we decided to change the definition from
>>>>> parameter to property.
>>>>>
>>>>> context.*property*.foo = "xyz";
>>>>> and/or
>>>>> context.*property*['foo'] = "xyz";
>>>>>
>>>>> So in the authenticator we can access using getScriptProperty("foo");
>>>>>
>>>>> thanks,
>>>>> Senthalan.
>>>>>
>>>>> On Mon, Jun 11, 2018 at 3:45 PM Senthalan Kanagalingam <
>>>>> sentha...@wso2.com> wrote:
>>>>>
>>>>>> Hi Pulasthi,
>>>>>>
>>>>>> On Mon, Jun 11, 2018 at 11:36 AM Pulasthi Mahawithana <
>>>>>> pulast...@wso2.com> wrote:
>>>>>>
>>>>>>> Hi Senthalan,
>>>>>>>
>>>>>>> On Mon, Jun 11, 2018 at 11:10 AM Senthalan Kanagalingam <
>>>>>>> sentha...@wso2.com> wrote:
>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I am working on the $subject. The purpose of this implementation is
>>>>>>>> to have application-specific configurations for authenticators. 
>>>>>>>> Currently,
>>>>>>>> we can static configurations for the authenticators in the
>>>>>>>> application-authentication.xml file.
>>>>>>>>
>>>>>>>> In the script, we can set the parameters as follow, If we want to
>>>>>>>> pass the foo to the authenticator,
>>>>>>>>
>>>>>>>> context.foo = "xyz";
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>> Shall we change this to following to avoid any conflicts with
>>>>>>> existing context objects?
>>>>>>>
>>>>>>> context.parameter.foo = "xyz";
>>>>>>> and/or
>>>>>>> context.parameter['foo'] = "xyz";
>>>>>>>
>>>>>>
>>>>>> + 1. I have implemented with the suggestions.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> We can get back the value in the authenticators( executed after
>>>>>>>> this definition) by calling context.getScriptParameter("foo")
>>>>>>>>
>>>>>>>> I have developed a POC for this. I have created a new map in the
>>>>>>>> "AuthenticationContext" to save these parameters.
>>>>>>>>
>>>>>>>> Please share your thoughts about this implementation.
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> Senthalan.
>>>>>>>>
>>>>>>>>
>>>>>>>> *Senthalan Kanagalingam*
>>>>>>>> *Software Engineer - WSO2 Inc.*
>>>>>>>> *Mobile : +94 (0) 77 18 77 466*
>>>>>>>> <http://wso2.com/signature>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Pulasthi Mahawithana*
>>>>>>> Associate Technical Lead
>>>>>>> WSO2 Inc., http://wso2.com/
>>>>>>> Mobile: +94-71-5179022
>>>>>>> Blog: https://medium.com/@pulasthi7/
>>>>>>>
>>>>>>> <https://wso2.com/signature>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> *Senthalan Kanagalingam*
>>>>>> *Software Engineer - WSO2 Inc.*
>>>>>> *Mobile : +94 (0) 77 18 77 466*
>>>>>> <http://wso2.com/signature>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *Senthalan Kanagalingam*
>>>>> *Software Engineer - WSO2 Inc.*
>>>>> *Mobile : +94 (0) 77 18 77 466*
>>>>> <http://wso2.com/signature>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> *Senthalan Kanagalingam*
>>>> *Software Engineer - WSO2 Inc.*
>>>> *Mobile : +94 (0) 77 18 77 466*
>>>> <http://wso2.com/signature>
>>>>
>>>
>>>
>>> --
>>>
>>> *Senthalan Kanagalingam*
>>> *Software Engineer - WSO2 Inc.*
>>> *Mobile : +94 (0) 77 18 77 466*
>>> <http://wso2.com/signature>
>>>
>>
>>
>>
>> --
>> Sagara Gunathunga
>>
>> Director; WSO2, Inc.;  http://wso2.com
>> Linkedin; http://www.linkedin.com/in/ssagara
>> Blog ;  http://ssagara.blogspot.com
>> Mobile : +9471 <+94%2071%20565%209887>2149951
>>
>>
>
> --
> Maduranga Siriwardena
> Senior Software Engineer
> WSO2 Inc; http://wso2.com/
>
> Email: madura...@wso2.com
> Mobile: +94718990591
> Blog: *https://madurangasiriwardena.wordpress.com/
> <https://madurangasiriwardena.wordpress.com/>*
> <http://wso2.com/signature>
>


-- 

*Senthalan Kanagalingam*
*Software Engineer - WSO2 Inc.*
*Mobile : +94 (0) 77 18 77 466*
<http://wso2.com/signature>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to