[ http://issues.apache.org/jira/browse/AXIS2-1409?page=all ]
Davanum Srinivas resolved AXIS2-1409.
-------------------------------------
Resolution: Fixed
Thomas,
the following change works for me. Basically you have to set the child of the
session information...
CreatePrincipalRequestDocument createPrincipalRequest =
CreatePrincipalRequestDocument.Factory.newInstance();
createPrincipalRequest.addNewCreatePrincipalRequest().addNewSessionInformation().setAuthenticatedPrincipals(sessionInfoDoc.getOAAuthenticationSessionInformation().getAuthenticatedPrincipals());
//
createPrincipalRequest.addNewCreatePrincipalRequest().setSessionInformation(sessionInfoDoc.getOAAuthenticationSessionInformation());
createPrincipalRequest.getCreatePrincipalRequest().addNewOaprincipal().setId(new
BigInteger("" + 4711));
createPrincipalRequest.getCreatePrincipalRequest().getOaprincipal().setOrigin("The
new principals origin.");
service.createPrincipal(createPrincipalRequest);
thanks,
dims
> Service doesn't recognize types returned by a prior operation call
> ------------------------------------------------------------------
>
> Key: AXIS2-1409
> URL: http://issues.apache.org/jira/browse/AXIS2-1409
> Project: Apache Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: databinding
> Affects Versions: nightly
> Environment: Windows XP / Linux, Axis2 1.0 nightly snapshot
> Reporter: Thomas, Berlinghoff
> Attachments: authentication-2006-10-23.rar, authentication.rar
>
>
> Hi all,
> Currently trying to implement an authentication service where someone has to
> login before calling other operations (e.g. creating new accounts or calling
> other services respectively). The login operation therefore validates the
> passed in username and password and generates sessionInformation which is
> returned. For each following operation call these sessionIinformation is to
> provide, in order to get authorized to performing the operation call.
> Now the problem is that the returned session information gets simply ignored
> when calling operations afterwards. I've captured the data send to the
> service, and the session information is obviously transfered to the service,
> but in the corresponding service operation the element points to null. No
> exception is thrown (DataBindingError or similiar) and the element gets
> simply ignored.
> Then I've tried to create the sessionInformation object in the client
> manually, and in that case the service recognizes it.
> Here're the two requests:
> 1. Using the services return value (doesn't work)
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Header />
> <soapenv:Body>
> <createPrincipalRequest
> xmlns="http://eu-orchestra.org/oa/authentication/requests/1.0">
> <sessionInformation
> xmlns="http://eu-orchestra.org/oa/authentication/types/1.0">
> <authenticatedPrincipals
> xmlns="http://eu-orchestra.org/oa/authentication/types/1.0">
> <Sequence>
> <element>
> <id>1</id>
>
> <sessionId>AA667G44F</sessionId>
>
> <validityEnd>2006-10-17T00:03:25.305+02:00</validityEnd>
> </element>
> </Sequence>
> </authenticatedPrincipals>
> </sessionInformation>
> <oaprincipal>
> <id
> xmlns="http://eu-orchestra.org/oa/authentication/types/1.0">4711</id>
> <origin
> xmlns="http://eu-orchestra.org/oa/authentication/types/1.0">The new
> principals origin.</origin>
> </oaprincipal>
> </createPrincipalRequest>
> </soapenv:Body>
> </soapenv:Envelope>
> 2. Using a manually generated request (works)
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Header />
> <soapenv:Body>
> <createPrincipalRequest
> xmlns="http://eu-orchestra.org/oa/authentication/requests/1.0">
> <sessionInformation>
> <authenticatedPrincipals
> xmlns="http://eu-orchestra.org/oa/authentication/types/1.0">
> <Sequence>
> <element>
> <id>1</id>
>
> <sessionId>AA667G44F</sessionId>
>
> <validityEnd>2006-10-17T00:03:25.305+02:00</validityEnd>
> </element>
> </Sequence>
> </authenticatedPrincipals>
> </sessionInformation>
> <oaprincipal>
> <id
> xmlns="http://eu-orchestra.org/oa/authentication/types/1.0">4711</id>
> <origin
> xmlns="http://eu-orchestra.org/oa/authentication/types/1.0">The new
> principals origin.</origin>
> </oaprincipal>
> </createPrincipalRequest>
> </soapenv:Body>
> </soapenv:Envelope>
> Note that the only difference is in line 6, where the first request specifies
> a namespace for the "sessionInformation" element, while in the second request
> no namespace is used. Indeed, if removing the namespace from the captured
> data and send it again to the service, the service works as expected.
> I assume this is a bug since the service should recognize a structure
> generated and returned by itself.
> Cheers,
> Thomas
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]