I'd suggest looking at your client configuration again. You define
WSHandlerConstants.ACTION twice, once for Signature, and once for
Signature, Encryption + Timestamp. Do you really mean to set MustUnderstand
to "0" as well?

Colm.


On Sat, May 4, 2013 at 8:31 PM, amitru <[email protected]> wrote:

>
> My Enviromnet:
> --------------------
> Application Server: JBOSS-AS7.1.1.Final JAVA: 1.7
>
> Below is the Web Service code when I am sending request from Client it
> doesn't check for security parameters mentioned in proprty file and returns
> success call, i want interceptors to work as I dont
> know spring i want to use wss4j api only, plz help.
>
>
> Prop File:- (inside WEB-INF/classes)
>
>
> org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
> org.apache.ws.security.crypto.merlin.keystore.type=jks
> org.apache.ws.security.crypto.merlin.keystore.password=changeit123
> org.apache.ws.security.crypto.merlin.keystore.file=publicstore.jks
> org.apache.ws.security.crypto.merlin.keystore.alias=amit
>
>
> import java.net.URL;
> import java.util.HashMap;
> import java.util.Map;
>
> import javax.xml.namespace.QName;
> import javax.xml.ws.BindingProvider;
>
> // Client side Logging related CXF APIs
> import org.apache.cxf.endpoint.Client;
> import org.apache.cxf.frontend.ClientProxy;
> import org.apache.cxf.interceptor.LoggingInInterceptor;
> import org.apache.cxf.interceptor.LoggingOutInterceptor;
> import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor;
> import org.apache.ws.security.WSConstants;
> import org.apache.ws.security.handler.WSHandlerConstants;
>
> import client.DemoCXF;
> import client.DemoCXFService;
> import client.Employee;
>
> public class TestCXF
>   {
>      public static void main(String ar[]) throws Exception
>       {
>         String WSDL_URL="http://localhost:8080/cxfpoc?wsdl";;
>         DemoCXFService service=new DemoCXFService(new URL(WSDL_URL));
>         DemoCXF port=service.getDemoCXFPort();
>
>         /* Following part of code is needed for client side Logging of Soap
> request/response */
>         /* We need to make sure that we place the "log4j.properties" file
> inside clients classpath */
>         Client client = ClientProxy.getClient(port);
>         client.getInInterceptors().add(new LoggingInInterceptor());
>         client.getOutInterceptors().add(new LoggingOutInterceptor());
>
>         Map<String,Object> outProps = new HashMap<String,Object>();
>
>         outProps.put(WSHandlerConstants.ACTION,
>                     WSHandlerConstants.TIMESTAMP + " " +
>                     WSHandlerConstants.SIGNATURE + " " +
>                     WSHandlerConstants.ENCRYPT);
>
>      outProps.put(WSHandlerConstants.MUST_UNDERSTAND, "0");
>
>
>         outProps.put(WSHandlerConstants.ACTION, "Signature");
>         outProps.put(WSHandlerConstants.USER, "amit");
>         outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS,
> KeystorePasswordCallback.class.getName());
>
>         outProps.put(WSHandlerConstants.SIG_PROP_FILE,
> "client_sign.properties");
>         WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
>
>         org.apache.cxf.endpoint.Endpoint cxfEndpoint =
> client.getEndpoint();
>
>         cxfEndpoint.getOutInterceptors().add(wssOut);
>
>
>         Employee emp=new Employee();
>         emp.setEmpNo(1000L);
>         emp.setEmpName("MiddlewaremagicEmployee");
>         emp.setEmpSalary(6000L);
>
>         System.out.println("\n\nBefore  EmpNo: "+emp.getEmpNo()+",
> Name:"+emp.getEmpName()+",  Sal:"+emp.getEmpSalary());
>         emp=port.processEmployeeSalary(emp,1000L);
>         System.out.println("\n\nAfter   EmpNo: "+emp.getEmpNo()+",
> Name:"+emp.getEmpName()+",  Sal:"+emp.getEmpSalary());
>       }
>   }
>
>
>
>
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/CXF-WSS4J-Interceptors-tp5727229.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>



-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to