Hi all,
The NullPointerException that I mentioned in the first mail caused due to
empty authenticated user. Now I create an authenticated user like [1]. For
my case, I don't have any claims.
Here I used the tiqr user id as the authenticatedUserId.
Still this get failed. I enabled the debug mode log and get the following
log. And you can find the authenticator code in [3]. There is no
entry/association for this user id. Is this caused due to that? Can anyone
guide me to resolve this?
[1] AuthenticatedUser authenticatedUser =
AuthenticatedUser.createFederateAuthenticatedUserFromSubjectIdentifier(authenticatedUserId);
[2] log:
[2015-11-12 11:52:03,161] DEBUG
{org.wso2.carbon.identity.authenticator.TiqrAuthenticator} -
Authentication pending...
[2015-11-12 11:52:04,175] DEBUG
{org.wso2.carbon.identity.authenticator.TiqrAuthenticator} - Successfully
authenticated the user associated with the User ID:shaki2
[2015-11-12 11:52:24,269] DEBUG
{org.wso2.carbon.identity.authenticator.TiqrAuthenticator} - The
authenticated subject identifier :shaki2
[2015-11-12 11:52:35,072] INFO
{org.wso2.carbon.identity.authenticator.TiqrAuthenticator} -
authentication success
[2015-11-12 11:52:43,128] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler}
- Tiqr returned: SUCCESS_COMPLETED
[2015-11-12 11:53:41,323] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler}
- Step 2 is completed. Going to get the next one.
[2015-11-12 11:53:41,323] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler}
- There are no more steps to execute
[2015-11-12 11:53:41,323] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler}
- Request is successfully authenticated
[2015-11-12 11:53:41,324] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler}
- Handling Post Authentication tasks
[2015-11-12 11:53:41,324] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler}
- Authenticated User: admin
[2015-11-12 11:53:41,324] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler}
- Authenticated User Tenant Domain: carbon.super
[2015-11-12 11:53:41,324] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.claims.impl.DefaultClaimHandler}
- Executing claim handler. isFederatedClaims = false and remote claims = []
[2015-11-12 11:53:41,324] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Searching
for user admin
[2015-11-12 11:53:41,325] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - value
after escaping special characters in admin : admin
[2015-11-12 11:53:41,328] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Searching
for user with SearchFilter: (&(objectClass=person)(uid=admin)) in
SearchBase:
[2015-11-12 11:53:41,330] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Name in
space for admin is uid=admin,ou=Users,dc=WSO2,dc=ORG
[2015-11-12 11:53:41,331] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - User:
admin exist: true
[2015-11-12 11:53:41,335] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Searching
for user with SearchFilter: (&(objectClass=person)(uid=admin)) in
SearchBase:
[2015-11-12 11:53:41,335] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :uid
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :dateOfBirth
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :streetAddress
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :region
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :postalcode
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :localityName
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :organizationName
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :otherPhone
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :givenName
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :stateOrProvinceName
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :title
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :accountLock
[2015-11-12 11:53:41,336] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :nickName
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :gender
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :role
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :unlockTime
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :oneTimePassword
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :mail
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :sn
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :im
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :url
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :country
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :cn
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :failedLoginAttempts
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :telephoneNumber
[2015-11-12 11:53:41,337] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :displayName
[2015-11-12 11:53:41,338] DEBUG
{org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} - Requesting
attribute :mobile
[2015-11-12 11:53:41,342] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.claims.impl.DefaultClaimHandler}
- Returning claims from claim handler = []
[2015-11-12 11:53:41,342] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.claims.impl.DefaultClaimHandler}
- UNFILTERED_IDP_CLAIM_VALUES map property set to []
[2015-11-12 11:53:41,342] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.claims.impl.DefaultClaimHandler}
- UNFILTERED_LOCAL_CLAIM_VALUES map property set to [
http://wso2.org/claims/username:admin,http://wso2.org/claims/lastname:admin,http://wso2.org/claims/role:Application/tiqrSP,admin,Internal/everyone,http://wso2.org/claims/emailaddress:[email protected],http://wso2.org/claims/fullname:admin,http://wso2.org/claims/givenname:admin,
]
[2015-11-12 11:53:41,343] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.claims.impl.DefaultClaimHandler}
- UNFILTERED_SP_CLAIM_VALUES map property set to [
http://wso2.org/claims/username:admin,http://wso2.org/claims/lastname:admin,http://wso2.org/claims/role:Application/tiqrSP,admin,Internal/everyone,http://wso2.org/claims/emailaddress:[email protected],http://wso2.org/claims/fullname:admin,http://wso2.org/claims/givenname:admin,
]
[2015-11-12 11:53:41,343] DEBUG
{org.wso2.carbon.identity.application.common.util.IdentityApplicationManagementUtil}
- JWT Header :{"typ":"JWT", "alg":"none"}
[2015-11-12 11:53:41,343] DEBUG
{org.wso2.carbon.identity.application.common.util.IdentityApplicationManagementUtil}
- JWT Body
:{"iss":"wso2","exp":14473094213433000,"iat":1447309421343,"idps":[{"idp":"LOCAL","authenticator":"BasicAuthenticator"},{"idp":"tiqrIDP","authenticator":"Tiqr"}]}
[2015-11-12 11:53:41,343] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.config.ConfigurationFacade}
- Trying to find the IdP for name: tiqrIDP
[2015-11-12 11:53:41,343] DEBUG
{org.wso2.carbon.idp.mgt.dao.CacheBackedIdPMgtDAO} - Cache entry found for
Identity Provider tiqrIDP
[2015-11-12 11:53:41,343] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.config.ConfigurationFacade}
- A registered IdP was found
[2015-11-12 11:58:35,886] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler}
- Step processing is completed
[2015-11-12 11:58:46,557] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultAuthenticationRequestHandler}
- Concluding the Authentication Flow
[2015-11-12 11:58:47,382] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.cache.SessionContextCache}
- Session corresponding to the key : e6d25273-f55b-459a-8df5-f6eebad701e4
cannot be found.
[2015-11-12 11:58:47,384] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.store.SessionDataPersistTask}
- Session Data persisting Task is started to run
[2015-11-12 11:58:47,386] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.store.SessionDataPersistTask}
- Session Data persisting Task is started to run
[2015-11-12 11:58:47,386] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultAuthenticationRequestHandler}
- Sending response back to: /samlsso..._commonAuthAuthenticated:
true_authenticatedUser: [email protected]_authenticatedIdPs:
eyJ0eXAiOiJKV1QiLCAiYWxnIjoibm9uZSJ9.eyJpc3MiOiJ3c28yIiwiZXhwIjoxNDQ3MzA5NDIxMzQzMzAwMCwiaWF0IjoxNDQ3MzA5NDIxMzQzLCJpZHBzIjpbeyJpZHAiOiJMT0NBTCIsImF1dGhlbnRpY2F0b3IiOiJCYXNpY0F1dGhlbnRpY2F0b3IifSx7ImlkcCI6InRpcXJJRFAiLCJhdXRoZW50aWNhdG9yIjoiVGlxciJ9XX0=._sessionDataKey:
20573828-9b56-4b36-a103-5ca16aa767ca (Sanitized)
[2015-11-12 11:59:18,620] DEBUG
{org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet} - Query
string : sessionDataKey=20573828-9b56-4b36-a103-5ca16aa767ca
[2015-11-12 11:59:18,626] DEBUG
{org.wso2.carbon.idp.mgt.dao.CacheBackedIdPMgtDAO} - Cache entry found for
Identity Provider LOCAL
[2015-11-12 11:59:18,626] DEBUG
{org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil} - Validating SAML
Request signature
[2015-11-12 11:59:18,626] DEBUG
{org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil} - Request message
<?xml version="1.0" encoding="UTF-8"?><samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="http://localhost:8081/travelocity.com/home.jsp"
Destination="https://localhost:9443/samlsso" ForceAuthn="false" ID="0"
IsPassive="false" IssueInstant="2015-11-12T06:21:29.874Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0"><samlp:Issuer
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:assertion">travelocity.com</samlp:Issuer><saml2p:NameIDPolicy
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
SPNameQualifier="Issuer"/><saml2p:RequestedAuthnContext
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
Comparison="exact"><saml:AuthnContextClassRef
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef></saml2p:RequestedAuthnContext></samlp:AuthnRequest>
Listening for transport dt_socket at address: 5005
[2015-11-12 11:59:18,628] DEBUG
{org.wso2.carbon.identity.sso.saml.validators.SAML2HTTPRedirectDeflateSignatureValidator}
- Constructing signed content string from URL query string
SAMLRequest=nZPdjtMwEIVfJfJ9finQtZqsSqsVlRYIbZYL7ow7pUaOHTyTbvftcZIWsiuoKm49M2fOfDOe3R5rHRzAobImZ2mUsACMtFtlvufsoboLp%2By2mKGodcPnLe3NGn62gBT4OoO8D%2BSsdYZbgQq5ETUgJ8k38w%2F3PIsS3jhLVlrNgjkiOPKNFtZgW4PbgDsoCQ%2Fr%2B5ztiRoex9pKofcWiU%2BTaRqTEwfwb4qeImnreG9riH5gw4KlN6GMoN53V4zPqm8mk1dx5w7RsuDOOgm9%2FZzthEZgwWqZMz%2FsCkuBqA7wJ4DYwsogCUM5y5L0dZimYZpVyRuepTy7iaZvJ19ZUJ7meqfMQOsShG9DEvL3VVWG5adNxYIvZ%2Bo%2BgZ0Z993d9XTFmSkrXrCaxWPFQT9r%2BEcvsVqWViv5NGqTXb9Fre3jwoEgz4xcCz3eWtBlge5FbcNdn8qbbnYkMMSCTdl5%2BtwKrXYKXM4Gxyz%2B7fl0c7DtV%2Bivh%2BBI%2F2V%2BYetGOIUddjgKSSfwfKy80J7qGnajDlcv4WKa5LKT9s%2Fd0T1at%2B2OCKSfrHLCYGMdDWv7q59iiP0LSHHe%2BPifFr8A&SigAlg=http%3A%2F%
2Fwww.w3.org
%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=JMPW1S0htJoQwxh582adlXcCcZqgJ7Y5Jyom0PandpRy5XT1Ni8IMNts67zAt%2FZJlnweOxmNrXsxJ5fOhkxMvEHXaSSbEgwN0N%2Bxd0B%2BoD7tmY544G0q%2F1SW6LXt9etOTwgclRjgIXPIEem1quW540bATd2OMY5ByriCb%2BcuLxc%3D
[2015-11-12 11:59:18,629] DEBUG
{org.wso2.carbon.identity.sso.saml.validators.SAML2HTTPRedirectDeflateSignatureValidator}
- Constructed signed content string for HTTP-Redirect DEFLATE
SAMLRequest=nZPdjtMwEIVfJfJ9finQtZqsSqsVlRYIbZYL7ow7pUaOHTyTbvftcZIWsiuoKm49M2fOfDOe3R5rHRzAobImZ2mUsACMtFtlvufsoboLp%2By2mKGodcPnLe3NGn62gBT4OoO8D%2BSsdYZbgQq5ETUgJ8k38w%2F3PIsS3jhLVlrNgjkiOPKNFtZgW4PbgDsoCQ%2Fr%2B5ztiRoex9pKofcWiU%2BTaRqTEwfwb4qeImnreG9riH5gw4KlN6GMoN53V4zPqm8mk1dx5w7RsuDOOgm9%2FZzthEZgwWqZMz%2FsCkuBqA7wJ4DYwsogCUM5y5L0dZimYZpVyRuepTy7iaZvJ19ZUJ7meqfMQOsShG9DEvL3VVWG5adNxYIvZ%2Bo%2BgZ0Z993d9XTFmSkrXrCaxWPFQT9r%2BEcvsVqWViv5NGqTXb9Fre3jwoEgz4xcCz3eWtBlge5FbcNdn8qbbnYkMMSCTdl5%2BtwKrXYKXM4Gxyz%2B7fl0c7DtV%2Bivh%2BBI%2F2V%2BYetGOIUddjgKSSfwfKy80J7qGnajDlcv4WKa5LKT9s%2Fd0T1at%2B2OCKSfrHLCYGMdDWv7q59iiP0LSHHe%2BPifFr8A&SigAlg=http%3A%2F%
2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1
[2015-11-12 11:59:18,629] WARN
{org.wso2.carbon.identity.sso.saml.processors.SPInitSSOAuthnRequestProcessor}
- Signature validation for Authentication Request failed.
[2015-11-12 11:59:18,629] DEBUG
{org.wso2.carbon.idp.mgt.dao.CacheBackedIdPMgtDAO} - Cache entry found for
Identity Provider LOCAL
[2015-11-12 11:59:18,632] DEBUG
{org.wso2.carbon.identity.application.authentication.framework.store.SessionDataPersistTask}
- Session Data removing Task is started to run
[3]
https://github.com/Shakila/Tiqr-IS-5.1.0/blob/master/tiqr-authenticator/org.wso2.carbon.identity.authenticator/src/main/java/org/wso2/carbon/identity/authenticator/TiqrAuthenticator.java
Thank you
On Wed, Nov 11, 2015 at 11:36 AM, Shakila Sivagnanarajah <[email protected]>
wrote:
> Chamila,
>
> You can find the code in [1].
>
> [1]
> https://github.com/Shakila/Tiqr-IS-5.1.0/blob/master/tiqr-authenticator/org.wso2.carbon.identity.authenticator/src/main/java/org/wso2/carbon/identity/authenticator/TiqrAuthenticator.java
>
>
> Thank you
>
> On Wed, Nov 11, 2015 at 11:21 AM, Chamila Wijayarathna <[email protected]>
> wrote:
>
>> Hi Shakila,
>>
>> The proper way to do is migrating the database, but if you don't have any
>> useful data in the database deleting the database would be easier.
>>
>> You can just drop the database, create a new database with same name and
>> the start server with './wso2server.sh -Dsetup'.
>>
>> Thanks
>>
>> On Wed, Nov 11, 2015 at 11:10 AM, Shakila Sivagnanarajah <
>> [email protected]> wrote:
>>
>>> Thanks Rasika & Chamila Wijayarathna,
>>>
>>> Earlier I didn't specify the serialVersionUID. Now I set that as the
>>> expected one (1179165995021182755L). It's working fine.
>>>
>>> @ Chamila Wijayarathna: Do I need to delete the database? If so, can
>>> you give reference to do that?
>>>
>>> Thanks
>>>
>>> On Wed, Nov 11, 2015 at 10:50 AM, Chamila Wijayarathna <[email protected]
>>> > wrote:
>>>
>>>> Hi Shakila,
>>>>
>>>> It seems like you are using the same database you used with IS 5.0.0,
>>>> after moving to 5.1.0 beta.
>>>>
>>>> If you are using the same database as your previous setup, those
>>>> scripts/tables may not compatible with what are expected in 5.1.0. You may
>>>> have to migrate or otherwise you can delete the previous database and start
>>>> IS again with -Dsetup. If 2nd option is possible, it would be the easiest.
>>>>
>>>> The reason for the error is as I understand, we have fixed [1] in IS
>>>> 5.1.0 and there we have changed serielVersionUID s of some objects which
>>>> are saved to databases as blobs by serializing. So when you try to retrieve
>>>> old entry which written to database in prior IS version would be serialized
>>>> with a 1 serialversionUID and when retrieving it from database after
>>>> migration, it try to deserialize, but version ID's does not match. So due
>>>> to that it fails to deserialize and this error occurs.
>>>>
>>>> Thanks
>>>>
>>>> [1]. https://wso2.org/jira/browse/IDENTITY-3621
>>>>
>>>> On Wed, Nov 11, 2015 at 10:27 AM, Chamila Wijayarathna <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Shakila,
>>>>>
>>>>> Can you please share a link of the source code of Tiqr authenticator
>>>>> you are working with.
>>>>>
>>>>> Thanks.
>>>>>
>>>>> On Wed, Nov 11, 2015 at 10:08 AM, Rasika Perera <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi Shakila,
>>>>>>
>>>>>> First error is more like deserialization issue. The
>>>>>> "InvalidClassException" usually occurs when the receiver has loaded a
>>>>>> class
>>>>>> for the object that has a different serialVersionUID than that of the
>>>>>> corresponding sender's class.
>>>>>>
>>>>>> Have you defined explicitly "serialVersionUID" in your serializable
>>>>>> class "TiqrAuthenticator"? If you do not explicitly declare this,
>>>>>> serialization runtime will calculate this based on the various aspect of
>>>>>> the class. According to the java doc[1], recommended way is to explicitly
>>>>>> declare serialVersionUID values, since the default serialVersionUID
>>>>>> computation is highly sensitive to class details that may vary depending
>>>>>> on
>>>>>> compiler implementations, and can thus result in unexpected
>>>>>> InvalidClassExceptions during deserialization.
>>>>>>
>>>>>> [1]
>>>>>> http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
>>>>>>
>>>>>> Thanks,
>>>>>> Rasika
>>>>>>
>>>>>> On Wed, Nov 11, 2015 at 8:18 AM, Shakila Sivagnanarajah <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> I implemented IS authenticator for Tiqr for IS 5.0.0 earlier. Now to
>>>>>>> enable another feature with association I need to modify the
>>>>>>> authenticator
>>>>>>> for 5.1.0. I used wso2is-5.1.0-beta for this. Since required
>>>>>>> dependencies
>>>>>>> (artifacts versioned as 5.1.0-beta) not in nexus, I put them locally and
>>>>>>> given local path in pom. Now I'm getting two errors. I mentioned them
>>>>>>> here.
>>>>>>> Can anyone help me to resolve this?
>>>>>>>
>>>>>>> [1] This is caused while retrieving previous session data.
>>>>>>>
>>>>>>> in FrameworkUtils:
>>>>>>> SessionContextCacheEntry cacheEntryObj =
>>>>>>> SessionContextCache.getInstance().getValueFromCache(cacheKey);
>>>>>>> returns null
>>>>>>>
>>>>>>> I got this stack-trace:
>>>>>>> [2015-11-11 07:38:22,258] ERROR
>>>>>>> {org.wso2.carbon.identity.application.authentication.framework.store.SessionDataStore}
>>>>>>> - Error while retrieving session data
>>>>>>>
>>>>>>> java.io.InvalidClassException:
>>>>>>> org.wso2.carbon.identity.authenticator.TiqrAuthenticator; local class
>>>>>>> incompatible: stream classdesc serialVersionUID = 1179165995021182755,
>>>>>>> local class serialVersionUID = 7666485910146971411
>>>>>>>
>>>>>>> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
>>>>>>>
>>>>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>
>>>>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>
>>>>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>
>>>>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>
>>>>>>> at java.util.HashMap.readObject(HashMap.java:1155)
>>>>>>>
>>>>>>> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
>>>>>>>
>>>>>>> at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>>
>>>>>>> at java.lang.reflect.Method.invoke(Method.java:601)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>
>>>>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>
>>>>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888)
>>>>>>>
>>>>>>> at
>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>>>>>>>
>>>>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
>>>>>>>
>>>>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.store.SessionDataStore.getBlobObject(SessionDataStore.java:428)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.store.SessionDataStore.getSessionContextData(SessionDataStore.java:275)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.cache.SessionContextCache.getValueFromCache(SessionContextCache.java:93)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.util.FrameworkUtils.getSessionContextFromCache(FrameworkUtils.java:571)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.findPreviousAuthenticatedSession(DefaultRequestCoordinator.java:290)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.initializeFlow(DefaultRequestCoordinator.java:228)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.handle(DefaultRequestCoordinator.java:109)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.servlet.CommonAuthenticationServlet.doPost(CommonAuthenticationServlet.java:53)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.servlet.CommonAuthenticationServlet.doGet(CommonAuthenticationServlet.java:43)
>>>>>>>
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
>>>>>>>
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
>>>>>>>
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:59)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698)
>>>>>>>
>>>>>>> at
>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>>>>>>>
>>>>>>> at
>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>>>>>>
>>>>>>> at java.lang.Thread.run(Thread.java:722)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> [2] DefaultRequestCoordinator throws:
>>>>>>>
>>>>>>> [2015-11-11 07:44:17,712] ERROR
>>>>>>> {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator}
>>>>>>> - Exception in Authentication Framework
>>>>>>>
>>>>>>> java.lang.NullPointerException
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handlePostAuthentication(DefaultStepBasedSequenceHandler.java:255)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handle(DefaultStepBasedSequenceHandler.java:156)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultAuthenticationRequestHandler.handle(DefaultAuthenticationRequestHandler.java:112)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.handle(DefaultRequestCoordinator.java:125)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.identity.application.authentication.framework.servlet.CommonAuthenticationServlet.doPost(CommonAuthenticationServlet.java:53)
>>>>>>>
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
>>>>>>>
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
>>>>>>>
>>>>>>> at
>>>>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
>>>>>>>
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:59)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>>>>>>>
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698)
>>>>>>>
>>>>>>> at
>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>>>>>>>
>>>>>>> at
>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>>>>>>>
>>>>>>> at
>>>>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>>>>>>
>>>>>>> at java.lang.Thread.run(Thread.java:722)
>>>>>>>
>>>>>>> Note:
>>>>>>>
>>>>>>> After completing the authentication in processAuthenticationResponse,
>>>>>>> AuthenticatorFlowStatus e = authenticator.process(request, response,
>>>>>>> context);
>>>>>>> (found in DefaultStepHandler) returns "INCOMPLETE".
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Shakila Sivagnanarajah
>>>>>>> Associate Software Engineer
>>>>>>> Mobile :+94 (0) 770 760240
>>>>>>> [email protected]
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> [email protected]
>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> With Regards,
>>>>>>
>>>>>> *Rasika Perera*
>>>>>> Software Engineer
>>>>>> M: +94 71 680 9060 E: [email protected]
>>>>>> LinkedIn: http://lk.linkedin.com/in/rasika90
>>>>>>
>>>>>> WSO2 Inc. www.wso2.com
>>>>>> lean.enterprise.middleware
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> [email protected]
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Chamila Dilshan Wijayarathna,*
>>>>> Software Engineer
>>>>> Mobile:(+94)788193620
>>>>> WSO2 Inc., http://wso2.com/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> *Chamila Dilshan Wijayarathna,*
>>>> Software Engineer
>>>> Mobile:(+94)788193620
>>>> WSO2 Inc., http://wso2.com/
>>>>
>>>
>>>
>>>
>>> --
>>> Shakila Sivagnanarajah
>>> Associate Software Engineer
>>> Mobile :+94 (0) 770 760240
>>> [email protected]
>>>
>>
>>
>>
>> --
>> *Chamila Dilshan Wijayarathna,*
>> Software Engineer
>> Mobile:(+94)788193620
>> WSO2 Inc., http://wso2.com/
>>
>
>
>
> --
> Shakila Sivagnanarajah
> Associate Software Engineer
> Mobile :+94 (0) 770 760240
> [email protected]
>
--
Shakila Sivagnanarajah
Associate Software Engineer
Mobile :+94 (0) 770 760240
[email protected]
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev