ws-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Veithen <andreas.veit...@gmail.com>
Subject Re: [AXIOM] Migrating Java code from AXIOM 1.2.13 to 1.2.20
Date Tue, 12 Sep 2017 19:32:48 GMT
These are implementation details that may change in new releases.

Andreas

On Tue, Sep 12, 2017 at 4:24 PM, Robert Seletsky <rseletsk@unm.edu> wrote:
> Hello Andreas,
>
>   "nested 'FirstChild' structures" means the original code 'securityHeader'
> via debugger looks like:
>
> securityHeader
>
> localName = "Security"
>
> firstChild
>
> localName="Username Token"
>
> firstChild
>
> localName="Username"
>
> firstChild
>
> value="..."
>
> nextSibling
>
> localName="Password"
>
> firstChild
>
> value="###"
>
>
> Robert
> ________________________________
> From: Andreas Veithen <andreas.veithen@gmail.com>
> Sent: Monday, September 11, 2017 4:25:31 PM
>
> To: users@ws.apache.org
> Subject: Re: [AXIOM] Migrating Java code from AXIOM 1.2.13 to 1.2.20
>
> On Mon, Sep 11, 2017 at 10:09 PM, Robert Seletsky <rseletsk@unm.edu> wrote:
>> Thank you Andreas!
>>
>> Now have:
>>
>> private OMElement createSecurityHeader(String username, String password) {
>>       SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
>>       OMNamespace namespaceWSSE = factory.createOMNamespace(WSSE_NS,
>> WSSE_PREFIX);
>>
>>       // create the Security header block
>>       OMElement securityHeader = factory.createOMElement("Security",
>> namespaceWSSE);
>>       OMAttribute attribute = factory.createOMAttribute("mustUnderstand",
>>             null, "1");
>>       securityHeader.addAttribute(attribute);
>>
>>       // nest the UsernameToken in the Security header
>>       OMElement usernameTokenElement =
>> factory.createOMElement(USERNAME_TOKEN_LN, namespaceWSSE);
>>       securityHeader.addChild(usernameTokenElement);
>>
>>       // nest the Username and Password elements
>>       OMElement usernameElement = factory.createOMElement(USERNAME_LN,
>> namespaceWSSE);
>>       usernameElement.setText(username);
>>       securityHeader.addChild(usernameElement);
>>
>>       OMElement passwordElement = factory.createOMElement(PASSWORD_LN,
>> namespaceWSSE);
>>       passwordElement.setText(password);
>>       OMAttribute attributep =
>> factory.createOMAttribute(PASSWORD_TYPE_ATTR,
>>             null, PASSWORD_TEXT);
>>       securityHeader.addAttribute(attributep);
>>       securityHeader.addChild(passwordElement);
>>
>>       return securityHeader;
>>    }
>> }
>>
>> But, stepping through original code (Axiom 1.2.13) and the above code
>> (Axiom
>> 1.2.20), I can see that the original has nested 'FirstChild' structures
>> and
>> the above code does not.
>
> Sorry, but I don't understand what "nested 'FirstChild' structures" means.
>
>>
>> I have looked at http://ws.apache.org/axiom/ , but having difficulty.
>>
>>
>> Robert
>> ________________________________
>> From: Andreas Veithen <andreas.veithen@gmail.com>
>> Sent: Friday, September 8, 2017 4:48:49 PM
>>
>> To: users@ws.apache.org
>> Subject: Re: [AXIOM] Migrating Java code from AXIOM 1.2.13 to 1.2.20
>>
>> On Thu, Sep 7, 2017 at 9:59 PM, Robert Seletsky <rseletsk@unm.edu> wrote:
>>> Thank You Andreas!
>>>
>>> So far I have:
>>>
>>> private OMElement createSecurityHeader(String username, String password)
>>> {
>>>
>>> //OMNamespaceImpl wsseNS = new OMNamespaceImpl(WSSE_NS, WSSE_PREFIX);
>>> SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
>>> OMNamespace namespaceWSSE = factory.createOMNamespace(WSSE_NS,
>>> WSSE_PREFIX);
>>> SOAPEnvelope envelope = factory.getDefaultEnvelope();
>>> //OMFactory factory = new SOAP11Factory();
>>>
>>>
>>> // create the Security header block
>>> //securityHeader = new OMElementImpl("Security", wsseNS, factory);
>>> OMElement element = factory.createOMElement("Security", namespaceWSSE);
>>> OMAttribute attribute = factory.createOMAttribute("mustUnderstand",
>>>       null, "1");
>>> element.addAttribute(attribute);
>>>
>>> Unsure how to store this in 'envelope'
>>
>> I don't understand. The original code has no reference to an envelope at
>> all.
>>
>>> Also what weblinks or books do you recommend?
>>
>> http://ws.apache.org/axiom/
>>
>>>
>>>
>>> Robert
>>>
>>> ________________________________
>>> From: Andreas Veithen <andreas.veithen@gmail.com>
>>> Sent: Thursday, September 7, 2017 11:52:55 AM
>>> To: users@ws.apache.org
>>> Subject: Re: [AXIOM] Migrating Java code from AXIOM 1.2.13 to 1.2.20
>>>
>>> Use OMAbstractFactory.getSOAP11Factory() to get the SOAPFactory instance,
>>> then rewrite your code to use the factory methods until there are no more
>>> references to internal implementation classes. The resulting code will
>>> then
>>> work with both Axiom versions.
>>>
>>> Andreas
>>>
>>>
>>> On Sep 7, 2017 4:46 PM, "Robert Seletsky" <rseletsk@unm.edu> wrote:
>>>
>>> I have the following Java method using AXIOM 1.2.13:
>>>
>>> private OMElement createSecurityHeader(String username, String password)
>>> {
>>>       OMNamespaceImpl wsseNS = new OMNamespaceImpl(WSSE_NS, WSSE_PREFIX);
>>>       OMFactory factory = new SOAP11Factory();
>>>       OMElementImpl securityHeader;
>>>       OMElementImpl usernameTokenElement;
>>>       OMElementImpl usernameElement;
>>>       OMElementImpl passwordElement;
>>>
>>>       // create the Security header block
>>>       securityHeader = new OMElementImpl("Security", wsseNS, factory);
>>>       securityHeader.addAttribute("mustUnderstand", "1", null);
>>>
>>>       // nest the UsernameToken in the Security header
>>>       usernameTokenElement = new OMElementImpl(USERNAME_TOKEN_LN, wsseNS,
>>> securityHeader, factory);
>>>
>>>       // nest the Username and Password elements
>>>       usernameElement = new OMElementImpl(USERNAME_LN, wsseNS,
>>> usernameTokenElement, factory);
>>>       usernameElement.setText(username);
>>>
>>>       passwordElement = new OMElementImpl(PASSWORD_LN,
>>> wsseNS,usernameTokenElement, factory);
>>>       passwordElement.setText(password);
>>>       passwordElement.addAttribute(PASSWORD_TYPE_ATTR, PASSWORD_TEXT,
>>> null);
>>>
>>>       return securityHeader;
>>>    }
>>> }
>>>
>>> I want to migrate this code to work with AXIOM 1.2.20.
>>>
>>> Looking for a solution and what resources are recommended to do this in
>>> general?
>>>
>>>
>>> Robert
>>> University of New Mexico IT
>>>
>>>
>>>

Mime
View raw message