On Sun, Jul 21, 2013 at 8:04 PM, Dushan Abeyruwan <[email protected]> wrote:

> On Mon, Jul 22, 2013 at 8:27 AM, Sanjiva Weerawarana <[email protected]>wrote:
>
>> Amila +1 for losing <parameter> and using elements directly - since we're
>> auto generating these mediators we should be able to make the change
>> easily. Kasun what do you think?
>>
>> On @key vs. @foo="{xxx}" model, the problem with @key is that its a
>> special attribute that has to be checked everywhere. If we say an attribute
>> value or an element value is always a literal value or an XPath expression
>> to evaluate ("{xpath-expresssion}") then its very powerful and flexible.
>> That can also be implemented trivially via a util method.
>>
>
>
>   without doubt I am + 1 for the approach and it can be done:)
>

+1. And make sure all mediators follow this pattern. Please don't say this
mediator has done by this team etc ... :). It is ESB teams responsibility
to have a common standards across all mediators :).

thanks,
Amila.


>
>
>
>>
>> The model of using vault-lookup() will work in the dev/test/stage/prod
>> lifecycle path as well - just use different vaults for the data.
>>
>> Sanjiva.
>>
>>
>> On Mon, Jul 22, 2013 at 7:10 AM, Amila Suriarachchi <[email protected]>wrote:
>>
>>>
>>>
>>>
>>> On Sat, Jul 20, 2013 at 10:22 PM, Dushan Abeyruwan <[email protected]>wrote:
>>>
>>>> Hi All
>>>>
>>>>     I have done required changes in synapse, there won't be any
>>>> existing API's effected due to the given changers , so the overall process
>>>> will be as shown in [1] where attributes required encryption required to
>>>> embedded a key [*enc:] *so during the serialization it  will be saved
>>>> as [2], and during run-time those encrypted values will be decrypted using
>>>> the *WSO2MediationSecurityInterceptor* ], the give solution
>>>> has implemented and tested in scratch environment and works as expected.
>>>>
>>>>
>>>> [1]      before saving to configuration embedded enc: for the filed
>>>> which requires encryption
>>>>
>>>>             <twitter.config>
>>>>                <parameter name="oauth.consumerSecret"
>>>>                           value="*enc:*mmmmmmmmmmmmmmm"/>
>>>>                <parameter name="oauth.accessTokenSecret"
>>>>                           value="*enc:*xxxxxxx"/>
>>>>                <parameter name="oauth.accessToken"
>>>>                           value="*enc:*eeeeeee"/>
>>>>                <parameter name="oauth.consumerKey" value="eeeexxxxxx"/>
>>>>
>>>
>>> I am not a fan of this parameter concept :). For me something like this
>>> is more user friendly.
>>>
>>> <oauth.consumerSecret>*enc:*mmmmmmmmmmmmmmm</oauth.consumerSecret>
>>>
>>> thanks,
>>> Amila.
>>>
>>>
>>>
>>>
>>>>              </twitter.config>
>>>>             <twitter.search>
>>>>                <parameter name="search" value="hotel"/>
>>>>             </twitter.search>
>>>>
>>>> [2] once serialized the values will be encrypted using wso2carbon key
>>>> store values
>>>>   algorithm of encryption
>>>>
>>>>          *      /***
>>>> * * Encrypt a given plain text*
>>>> * * *
>>>> * * @param plainTextBytes*
>>>> * *            The plaintext bytes to be encrypted*
>>>> * * @return The cipher text bytes*
>>>> * * @throws CryptoException*
>>>> * *             On error during encryption*
>>>> * */*
>>>> * public byte[] encrypt(byte[] plainTextBytes) throws CryptoException {
>>>> *
>>>> * try {*
>>>> *
>>>> *
>>>> * KeyStoreManager keyMan = KeyStoreManager.getInstance(*
>>>> * MultitenantConstants.SUPER_TENANT_ID, this.serverConfigService,*
>>>> * this.registryService);*
>>>> * KeyStore keyStore = keyMan.getPrimaryKeyStore();*
>>>> *
>>>> *
>>>> * Certificate[] certs = keyStore.getCertificateChain(keyAlias);*
>>>> * Cipher cipher = Cipher.getInstance("RSA", "BC");*
>>>> * cipher.init(Cipher.ENCRYPT_MODE, certs[0].getPublicKey());*
>>>> *
>>>> *
>>>> * return cipher.doFinal(plainTextBytes);*
>>>> *
>>>> *
>>>> * } catch (Exception e) {*
>>>> * e.printStackTrace();*
>>>> * throw new
>>>> CryptoException(Messages.getMessage("erorDuringEncryption"), e);*
>>>> * }*
>>>> * }*
>>>>
>>>>    <twitter.config>
>>>>                <parameter name="oauth.consumerSecret"
>>>>                           value="*encrypted:*
>>>> K+PTyrN7K1KM2kOeFKMv0x9X5EP9qCpS7mJm9mpi9p3FqyYNyd1qCAlHKMA6dXAkCg1mdzL0TvF9ApMjwuVUoijO/C3EWn6Pf4Ju+70e2rsJ3hrbUVuD/SI/NaxS0QAg9mJzg/p0frnugbC+uha85d32yotUWcosKHW26Yjb6Ao="/>
>>>>                <parameter name="oauth.accessTokenSecret"
>>>>                           value="*encypted:*
>>>> WfUb4sTrimV/WDjER8UldK2E2ez/0kC8r3RUWL3o0Lfuq+uZwjJxfIn3YYwRcPT52FSriKdesNg9Hi6sHW2gN4NqyI9pFqG1L3sfDwnlS0u4RAl8ZLq+62rUuVhA2C+XORyEBp8AZYUf1ew1dUSf8LG/+NfyoHmiLmwO3MvPqbo="/>
>>>>                <parameter name="oauth.accessToken"
>>>>                           value="*encypted:*
>>>> FK2gv27JwmPrR7wybWI732HDQlR6p4jPlbTJQJKga386yGJ43gYpFsgoeilhDz/24tEe+4IqSuajsrWFa7wi8Ot6p+bLsufartodJhHt6zQfNTq6yaVzZWUExRjV2bsnJ477yfwc4Oz30c59rhZvkNtGkXXaVp8Fo1nlS18H3mQ="/>
>>>>                <parameter name="oauth.consumerKey"
>>>>                           value=*"*eeeexxxxxx"/>
>>>>             </twitter.config>
>>>>             <twitter.search>
>>>>
>>>>
>>>> [3] Synapse config
>>>> <definitions xmlns="http://ws.apache.org/ns/synapse";>
>>>>    <registry provider="org.wso2.carbon.mediation.registry.WSO2Registry">
>>>>       <parameter name="cachableDuration">15000</parameter>
>>>>    </registry>
>>>>   * <security
>>>> provider="org.wso2.carbon.mediation.security.WSO2MediationSecurityInterceptor"/>
>>>> *
>>>>
>>>>
>>>>  any thoughts  or improvements which you guys think ?
>>>>
>>>>
>>>> On Sat, Jul 20, 2013 at 8:45 PM, Dushan Abeyruwan <[email protected]>wrote:
>>>>
>>>>> Hi all,
>>>>>  A small correction the relevant config should look like as below
>>>>> described
>>>>>
>>>>>         <twitter.config>
>>>>>                <parameter name="oauth.consumerSecret"
>>>>>                           
>>>>> value="*enc:*EvTEzc3jj9Z1Kx58ylNfkpnuXYuCeGgKhkVkziYNMs"/>
>>>>>
>>>>>
>>>>> Cheers
>>>>> Dushan
>>>>>
>>>>>
>>>>> On Sat, Jul 20, 2013 at 8:39 PM, Dushan Abeyruwan <[email protected]>wrote:
>>>>>
>>>>>> Hi
>>>>>>  IMO seems like 
>>>>>> EntitlementMediato<https://svn.wso2.org/repos/wso2/carbon/platform/trunk/components/identity/org.wso2.carbon.identity.entitlement.mediator/src/main/java/org/wso2/carbon/identity/entitlement/mediator/EntitlementMediator.java>r
>>>>>>  approach
>>>>>> quite suitable and handy and I would think what it does for the time 
>>>>>> being
>>>>>> is _ _okay  _ _ since Entitlement component is NOT resides within synapse
>>>>>> (need expert suggestion form IS since they are the one who implemented  
>>>>>> the
>>>>>> current approach) , according to the discussion had (with Kasun at el)
>>>>>>  thought how we could probably include the same approach for
>>>>>> the components resides in synapse.
>>>>>>    There we have identified the approach which registry getting
>>>>>> intercepted could be useful [2].We thought of introducing a security
>>>>>> related component [3] a kind of extension point where the
>>>>>> SecurityInteceptors will be initialized during init()
>>>>>> and readily available in *synapseConfiguration*  during
>>>>>> serialization or during run-time and with that we could probably utilize
>>>>>> the attributes which required for encrypt with special character or
>>>>>> sequence as shown [1]
>>>>>>       anyway I am still doing a feasibility study of the
>>>>>> described approach, may be there we might have jump few hurdles to get 
>>>>>> this
>>>>>> done without harming synapse API ..
>>>>>>
>>>>>>     really appreciate thoughts from IS for this approach, do you guys
>>>>>> feel any _ _ better more reliable approach than this _ _ ?
>>>>>>
>>>>>> e.g
>>>>>>  [1]
>>>>>>     <twitter.config>
>>>>>>                <parameter name="*enc:*oauth.consumerSecret"
>>>>>>
>>>>>> value="EvTEzc3jj9Z1Kx58ylNfkpnuXYuCeGgKhkVkziYNMs"/>   (if used enc:  
>>>>>> then
>>>>>> during serialization those values encrypited same can be integrated for
>>>>>> UI's even this might not be any issue when use DevS approach as well)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> [2]
>>>>>>    <registry
>>>>>> provider="org.wso2.carbon.mediation.registry.WSO2Registry">
>>>>>>       <parameter name="cachableDuration">15000</parameter>
>>>>>>    </registry>
>>>>>>
>>>>>> [3]
>>>>>>   <registry provider="org.wso2.carbon.security.*SecurityInterceptor*">
>>>>>>  *SecurityInterceptor  (class name or package not finalized yet)*
>>>>>>       <parameter name="cachableDuration">15000</parameter>
>>>>>>    </registry>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, Jul 20, 2013 at 7:17 PM, Sanjiva Weerawarana <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Dushan connector creds are going to be user specific. So that means
>>>>>>> they have to be able to configure them in a user-accessible way .. and 
>>>>>>> then
>>>>>>> the data needs to be stored in a secure vault of some kind.
>>>>>>>
>>>>>>> For UI driven configs that's easy - we get the password in the UI,
>>>>>>> store in the vault and refer to it in the mediator config.
>>>>>>>
>>>>>>> For hand edited synapse.xml stuff you'd need to let the user do the
>>>>>>> same. Do we have a per-user vault type concept?
>>>>>>>
>>>>>>> Sanjiva.
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Jul 19, 2013 at 11:18 AM, Dushan Abeyruwan 
>>>>>>> <[email protected]>wrote:
>>>>>>>
>>>>>>>> Hi
>>>>>>>>    Regarding $subject, what would be the best way to accomplish ?
>>>>>>>>              According to the EntitlementMediator implementation it
>>>>>>>> seems we are using a different approach as shown below [1], any reason
>>>>>>>> which prevent us moving to synapse secure vault and also seems there 
>>>>>>>> are
>>>>>>>> zero documentation related to Synapse secure vault configuration.
>>>>>>>>
>>>>>>>>
>>>>>>>> [1]
>>>>>>>>
>>>>>>>> https://svn.wso2.org/repos/wso2/carbon/platform/trunk/components/identity/org.wso2.carbon.identity.entitlement.mediator/src/main/java/org/wso2/carbon/identity/entitlement/mediator/EntitlementMediator.java
>>>>>>>>
>>>>>>>>
>>>>>>>>  public void setRemoteServicePassword(String remoteServicePassword)
>>>>>>>> {
>>>>>>>>         if (remoteServicePassword.startsWith("enc:")) {
>>>>>>>>             try {
>>>>>>>>               *  this.remoteServicePassword = new
>>>>>>>> String(CryptoUtil.getDefaultCryptoUtil()*
>>>>>>>> *
>>>>>>>> .base64DecodeAndDecrypt(remoteServicePassword.substring(4)));*
>>>>>>>>             } catch (CryptoException e) {
>>>>>>>>                  log.error(e);
>>>>>>>>             }
>>>>>>>>         } else {
>>>>>>>>             this.remoteServicePassword = remoteServicePassword;
>>>>>>>>         }
>>>>>>>>     }
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Dushan Abeyruwan
>>>>>>>> Associate Tech Lead
>>>>>>>> *Integration Technologies Team*
>>>>>>>> *WSO2 Inc. http://wso2.com/*
>>>>>>>> *Mobile:(+94)714408632*
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Architecture mailing list
>>>>>>>> [email protected]
>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sanjiva Weerawarana, Ph.D.
>>>>>>> Founder, Chairman & CEO; WSO2, Inc.;  http://wso2.com/
>>>>>>> email: [email protected]; phone: +94 11 763 9614; cell: +94 77 787
>>>>>>> 6880 | +1 650 265 8311
>>>>>>> blog: http://sanjiva.weerawarana.org/
>>>>>>>
>>>>>>> Lean . Enterprise . Middleware
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Architecture mailing list
>>>>>>> [email protected]
>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Dushan Abeyruwan
>>>>>> Associate Tech Lead
>>>>>> *Integration Technologies Team*
>>>>>> *WSO2 Inc. http://wso2.com/*
>>>>>> *Mobile:(+94)714408632*
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Dushan Abeyruwan
>>>>> Associate Tech Lead
>>>>> *Integration Technologies Team*
>>>>> *WSO2 Inc. http://wso2.com/*
>>>>> *Mobile:(+94)714408632*
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Dushan Abeyruwan
>>>> Associate Tech Lead
>>>> *Integration Technologies Team*
>>>> *WSO2 Inc. http://wso2.com/*
>>>> *Mobile:(+94)714408632*
>>>>
>>>> _______________________________________________
>>>> Architecture mailing list
>>>> [email protected]
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>>
>>>
>>>
>>> --
>>> *Amila Suriarachchi*
>>>
>>> Software Architect
>>> WSO2 Inc. ; http://wso2.com
>>> lean . enterprise . middleware
>>>
>>> phone : +94 71 3082805
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> Sanjiva Weerawarana, Ph.D.
>> Founder, Chairman & CEO; WSO2, Inc.;  http://wso2.com/
>> email: [email protected]; phone: +94 11 763 9614; cell: +94 77 787 6880 | +1
>> 650 265 8311
>> blog: http://sanjiva.weerawarana.org/
>>
>> Lean . Enterprise . Middleware
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Dushan Abeyruwan
> Associate Tech Lead
> *Integration Technologies Team*
> *WSO2 Inc. http://wso2.com/*
> *Mobile:(+94)714408632*
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Amila Suriarachchi*

Software Architect
WSO2 Inc. ; http://wso2.com
lean . enterprise . middleware

phone : +94 71 3082805
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to