2000 spec you are currently implementing:<ds:KeyInfo 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>

does not acommodate 256 bit signatures
your current option will only allow 2000 xmldsig spec which is why you are 
defaulting to rsa-sha1 algorithm in SignatureMethod

<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"; />
take a look at default policy declaration in services.xml for your deployed 
service:
    <!--- wsp:Policy wsu:Id="SigEncr" 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
 xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; -->
<!-- replace with --><wsp:Policy wsu:Id="SigEncr"  <!-- same -->
            
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
  <!-- same -->        
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"; <!-- add this 
-->

        xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; >     <!-- 
same -->    <wsp:ExactlyOne>                <wsp:All>                       
<sp:AsymmetricBinding 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>                
          <wsp:Policy>                                    <sp:InitiatorToken>   
                                          <wsp:Policy>                          
                          <sp:X509Token 
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient";>
                                                            <wsp:Policy>        
                                                            <!-- 
sp:WssX509V3Token10/ --> <!-- comment out any other algo -->     <!-- here are 
Algorithm options for 2005-07 spec  <wsp:Policy xmlns:wsp="...">   
(<sp:Basic256 ... /> |    <sp:Basic192 ... /> |    <sp:Basic128 ... /> |    
<sp:TripleDes ... /> |    <sp:Basic256Rsa15 ... /> |    <sp:Basic192Rsa15 ... 
/> |    <sp:Basic128Rsa15 ... /> |    <sp:TripleDesRsa15 ... /> |    
<sp:Basic256Sha256 ... /> |    <sp:Basic192Sha256 ... /> |    
<sp:Basic128Sha256 ... /> |    <sp:TripleDesSha256 ... /> |    
<sp:Basic256Sha256Rsa15 ... /> |    <sp:Basic192Sha256Rsa15 ... /> |    
<sp:Basic128Sha256Rsa15 ... /> |    <sp:TripleDesSha256Rsa15 ... /> |    ...)   
 <sp:InclusiveC14N ... /> ?    <sp:SOAPNormalization10 ... /> ?    
<sp:STRTransform10 ... /> ?   (<sp:XPath10 ... /> |    <sp:XPathFilter20 ... /> 
|    <sp:AbsXPath ... / -->                                  <sp:Basic256Rsa15 
/> <!-- my suggestion -->                                                       
   </wsp:Policy>                                                   
</sp:X509Token>                                         </wsp:Policy>           
                        </sp:InitiatorToken>                                    
<sp:RecipientToken>                                             <wsp:Policy>    
                                                <sp:X509Token 
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never";>
                                                                <wsp:Policy>    
                                                                <!-- 
sp:WssX509V3Token10/ --> <!-- comment out other algos -->   <!-- here are 
options for 2005-07 spec  <wsp:Policy xmlns:wsp="...">   (<sp:Basic256 ... /> | 
   <sp:Basic192 ... /> |    <sp:Basic128 ... /> |    <sp:TripleDes ... /> |    
<sp:Basic256Rsa15 ... /> |    <sp:Basic192Rsa15 ... /> |    <sp:Basic128Rsa15 
... /> |    <sp:TripleDesRsa15 ... /> |    <sp:Basic256Sha256 ... /> |    
<sp:Basic192Sha256 ... /> |    <sp:Basic128Sha256 ... /> |    
<sp:TripleDesSha256 ... /> |    <sp:Basic256Sha256Rsa15 ... /> |    
<sp:Basic192Sha256Rsa15 ... /> |    <sp:Basic128Sha256Rsa15 ... /> |    
<sp:TripleDesSha256Rsa15 ... /> |    ...)    <sp:InclusiveC14N ... /> ?    
<sp:SOAPNormalization10 ... /> ?    <sp:STRTransform10 ... /> ?   (<sp:XPath10 
... /> |    <sp:XPathFilter20 ... /> |    <sp:AbsXPath ... / -->                
              <sp:Basic256Rsa15 /> <!-- my suggestion although Asymmetric 
recipient can be different from initiator -->                                   
                            </wsp:Policy>                                       
            </sp:X509Token>                                         
</wsp:Policy>                                   </sp:RecipientToken>            
                        <sp:AlgorithmSuite>                                     
        <wsp:Policy>                                                    <!-- 
sp:Basic128/ --> <!-- comment out other algos -->                               
                         <sp:Basic256Rsa15 /> <!-- my suggestion although 
Asymmetric recipient can be different from initiator -->                        
                 </wsp:Policy>                                   
</sp:AlgorithmSuite>                                    <sp:Layout>             
                                <wsp:Policy>                                    
                <sp:Strict/>                                            
</wsp:Policy>                                   </sp:Layout>                    
                <sp:IncludeTimestamp/>                                  
<sp:OnlySignEntireHeadersAndBody/>                              </wsp:Policy>   
                </sp:AsymmetricBinding>                 <sp:Wss10 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>                
              <wsp:Policy>                                    
<sp:MustSupportRefKeyIdentifier/>                                       
<sp:MustSupportRefIssuerSerial/>                                </wsp:Policy>   
                </sp:Wss10>                     <sp:SignedParts 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>                
                <sp:Body/>                      </sp:SignedParts>               
        <sp:EncryptedParts 
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>                
             <sp:Body/>                      </sp:EncryptedParts>               
     <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy";>      
                     <ramp:user>ip</ramp:user>                                  
                                                <!-- needs to be actual user 
-->                             
<ramp:encryptionUser>useReqSigCert</ramp:encryptionUser>                
<ramp:passwordCallbackClass>org.apache.rahas.PWCallback</ramp:passwordCallbackClass>
 <!-- assume Callback is coded? -->                         
<ramp:signatureCrypto>  <ramp:crypto 
provider="org.apache.ws.security.components.crypto.Merlin">        
<ramp:property 
name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>   
 <ramp:property 
name="org.apache.ws.security.crypto.merlin.file">rahas-sts.jks</ramp:property> 
<!-- verify valid jks on classpath -->                                          
  <ramp:property 
name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property><!--
 needs to be actual password to keystore -->                                   
</ramp:crypto>                          
</ramp:signatureCrypto><ramp:encryptionCypto>   <ramp:crypto 
provider="org.apache.ws.security.components.crypto.Merlin">        
<ramp:property 
name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>   
 <ramp:property 
name="org.apache.ws.security.crypto.merlin.file">rahas-sts.jks</ramp:property> 
<!-- verify valid jks on classpath -->                                          
  <ramp:property 
name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
     
<!-- needs to be actual password to keystore -->                                
        </ramp:crypto>                          </ramp:encryptionCypto>         
        </ramp:RampartConfig>           </wsp:All>      </wsp:ExactlyOne>       
</wsp:Policy>
I will assume this Policy declaration is already in your WSDL?
recreate server code>wsdl2java -ss -g -uri test.wsdl
if you dont have services.xml and want to generate services.xml>wsdl2java -ss 
-g -sd -uri test.wsdl
jar server>ant jar.server
use axis2 admin upload utility to upload .\build\lib\*.aar to axis2 
webserviceyou should now see the service deployed and all operations displayed

jar client>ant jar.client
run client jar>java jar /lib/test-test-client.jar

what do you see?Martin 
______________________________________________ 
                     


> Date: Wed, 9 Mar 2016 09:39:38 +0100
> Subject: Re: WSsecurity: SignatureMethod error
> From: enrique.sori...@gmail.com
> To: java-user@axis.apache.org
> 
> First of all, thanks for the prompt response.
> 
> >>>which specific algorithm do you want to implement on the server?
> 
> I'm trying to implement a client for an existing server. The server
> only accepts rsa-sha1 signatures.
> I can't read or modify the server code, I only have the WSDL to
> generate the client stubs.
> 
> How can I force the client to use http://www.w3.org/2000/09/xmldsig#rsa-sha1?
> 
> Thanks.
> 
> 
> 
> 
> On Wed, Mar 9, 2016 at 2:57 AM, Martin Gainty <mgai...@hotmail.com> wrote:
> >
> >
> >
> >
> >
> >> Date: Tue, 8 Mar 2016 14:40:27 +0100
> >> Subject: WSsecurity: SignatureMethod error
> >> From: enrique.sori...@gmail.com
> >> To: java-user@axis.apache.org
> >>
> >> Hi all, I need some help with Axis2/rampart.
> >>
> >> I'm implementing a WS client. I generated the client stubs from a WSDL
> >> file by using wsdl2java (jaxbri binding). The WSDL file includes a
> >> WS-security policy, which sets TripleDesSha256Rsa15 as the
> >> AlgorithmSuite.
> >>
> >> Rampart is engaged, my Keystore is ok, and so on. The problem: the
> >> requests are signed with RsaSha256, but the server requires RsaSha1
> >> signatures:
> >
> > MG>constrained by
> > MG><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#
> > MG>which is of type anyURI <attribute name="Algorithm" type="anyURI"
> > use="required"/>
> > MG>anyURI is defined as
> >
> > 3.2.17 anyURI
> >
> > [Definition:]   anyURI represents a Uniform Resource Identifier Reference
> > (URI). An anyURI value can be absolute or relative, and may have an optional
> > fragment identifier (i.e., it may be a URI Reference). This type should be
> > used to specify the intention that the value fulfills the role of a URI as
> > defined by [RFC 2396], as amended by [RFC 2732].
> >
> > The mapping from anyURI values to URIs is as defined in Section 5.4 Locator
> > Attribute of [XML Linking Language] (see also Section 8 Character Encoding
> > in URI References of [Character Model]). This means that a wide range of
> > internationalized resource identifiers can be specified when an anyURI is
> > called for, and still be understood as URIs per [RFC 2396], as amended
> > by[RFC 2732], where appropriate to identify resources.
> >
> > NOTE: Each URI scheme imposes specialized syntax rules for URIs in that
> > scheme, including restrictions on the syntax of allowed fragement
> > identifiers. Because it is impractical for processors to check that a value
> > is a context-appropriate URI reference, this specification follows the lead
> > of [RFC 2396] (as amended by [RFC 2732]) in this matter: such rules and
> > restrictions are not part of type validity and are not checked by ·minimally
> > conforming· processors. Thus in practice the above definition imposes only
> > very modest obligations on·minimally conforming· processors.
> >
> > 3.2.17.1 Lexical representation
> >
> > The ·lexical space· of anyURI is finite-length character sequences which,
> > when the algorithm defined in Section 5.4 of [XML Linking Language] is
> > applied to them, result in strings which are legal URIs according to [RFC
> > 2396], as amended by [RFC 2732].
> >
> > NOTE: Spaces are, in principle, allowed in the ·lexical space· of anyURI,
> > however, their use is highly discouraged (unless they are encoded by %20).
> >
> > 3.2.17.2 Constraining facets
> >
> > anyURI has the following ·constraining facets·:
> >
> > length
> > minLength
> > maxLength
> > pattern
> > enumeration
> > whiteSpace
> >
> > MG>
> >
> >> ...
> >> <ds:SignatureMethod
> >> Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
> >> ...
> >>
> >> AFAIK, WS-SecurityPolicy specifies that RsaSha1 is always used for the
> >> signatures. The AlgorithmSuite (e.g. TripleDesSha256Rsa15) is used to
> >> configure the other crypto algorithms (digest, symmetric, wrapping,
> >> etc.), right?
> >
> > MG>so as long as http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 conforms
> > to anyURI type that should work
> > MG>which specific algorithm do you want to implement on the server?
> >
> >>
> >> What's happening here? Am I missing something?
> >>
> >> I'm using Java 1.8, axis2-1.7.1, rampart-1.7.0 and wss4j-1.6.19.
> >>
> >> Thanks in advance.
> >> Regards.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
> >> For additional commands, e-mail: java-user-h...@axis.apache.org
> >>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
> For additional commands, e-mail: java-user-h...@axis.apache.org
> 
                                          

Reply via email to