Hi Francesco,

I normally annotate the operation in services.xml with my ws-policy that
also contains the rampart configurations. Aslo look maybe at the samples in
the samples folder in rampart dist. The ones under policy at least if you
have ws-policy added to your service.

Håkon

2009/10/29 Francesco Stampacchia <[email protected]>

> Hello everyone,
>
> I'm trying to make my Axis2 service, protected by WSAS IS, perform an Axis2
> Client action, requesting a Security Token to the local WSAS IS under which
> my service is deployed.
> In doing so I've passed a valid repository in order to obtain a valid
> ConfigurationContext but then, when I call the STSClient function
> requestSecurityToken() through the following code:
>
>            ConfigurationContext ctx =
>
> ConfigurationContextFactory.createConfigurationContextFromFileSystem(wso2RepositoryPath);
>
>            STSClient stsClient = new STSClient(ctx);
>
>            stsClient.setRstTemplate(getRSTTemplate());
>            stsClient.setAction(RahasConstants.WST_NS_05_02 +
> RahasConstants.RST_ACTION_SCT);
>
>            Policy stsPolicy = loadPolicy(wso2STSPolicy);
>            Policy servicePolicy = loadPolicy(wso2ServicePolicy);
>
>            Token responseToken =
> stsClient.requestSecurityToken(servicePolicy, stsEpr, stsPolicy,
> serviceEpr);
>
> I get the exception:
>
> [2009-10-29 11:30:39,469] ERROR -  errorInObtainingToken
> org.apache.axis2.AxisFault: Cannot load password callback class:
> PWCBHandler
>    at
> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:70)
>    at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>    at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:256)
>    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:421)
>    at
>
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
>    at
>
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
>    at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
>    at
> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:549)
>    at
> org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:146)
>    at SecurityManagerServer.getToken(SecurityManagerServer.java:814)
>    at
> SecurityManagerServer.getEncodedReqRep(SecurityManagerServer.java:260)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>    at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:585)
>    at
>
> org.apache.axis2.receivers.RawXMLINOutMessageReceiver.invokeBusinessLogic(RawXMLINOutMessageReceiver.java:97)
>    at
>
> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42)
>    at
>
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
>    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:178)
>    at
>
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
>    at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>    at
>
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
>    at
>
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
>    at
>
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>    at org.wso2.carbon.bridge.BridgeServlet.service(BridgeServlet.java:135)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>    at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
>    at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>    at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>    at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>    at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>    at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>    at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
>    at
>
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>    at
>
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>    at
>
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>    at
>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>    at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.rampart.RampartException: Cannot load password
> callback class: PWCBHandler
>    at
> org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:139)
>    at
> org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:115)
>    at
>
> org.apache.rampart.builder.BindingBuilder.getSignatureBuider(BindingBuilder.java:263)
>    at
>
> org.apache.rampart.builder.AsymmetricBindingBuilder.doSignature(AsymmetricBindingBuilder.java:626)
>    at
>
> org.apache.rampart.builder.AsymmetricBindingBuilder.doSignBeforeEncrypt(AsymmetricBindingBuilder.java:413)
>    at
>
> org.apache.rampart.builder.AsymmetricBindingBuilder.build(AsymmetricBindingBuilder.java:93)
>    at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:147)
>    at
> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:64)
>    ... 42 more
> Caused by: java.lang.ClassNotFoundException: PWCBHandler
>    at
>
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
>    at
>
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
>    at
>
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
>    at
>
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
>    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>    at java.lang.Class.forName0(Native Method)
>    at java.lang.Class.forName(Class.java:164)
>    at org.apache.ws.security.util.Loader.loadClass(Loader.java:200)
>    at org.apache.ws.security.util.Loader.loadClass(Loader.java:163)
>    at
> org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:137)
>    ... 49 more
> SecurityManagerException: Unable to obtain the security token from local
> STS!
>    at SecurityManagerServer.getToken(SecurityManagerServer.java:830)
>    at
> SecurityManagerServer.getEncodedReqRep(SecurityManagerServer.java:260)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>    at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:585)
>    at
>
> org.apache.axis2.receivers.RawXMLINOutMessageReceiver.invokeBusinessLogic(RawXMLINOutMessageReceiver.java:97)
>    at
>
> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42)
>    at
>
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
>    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:178)
>    at
>
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
>    at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>    at
>
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
>    at
>
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
>    at
>
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>    at org.wso2.carbon.bridge.BridgeServlet.service(BridgeServlet.java:135)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>    at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>    at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
>    at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>    at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>    at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>    at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>    at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>    at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
>    at
>
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>    at
>
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>    at
>
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>    at
>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>    at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.rahas.TrustException: Error in obtaining token from :
> "http://localhost:9763/services/wso2carbon-sts/";
>    at
> org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:152)
>    at SecurityManagerServer.getToken(SecurityManagerServer.java:814)
>    ... 33 more
> Caused by: org.apache.axis2.AxisFault: Cannot load password callback class:
> PWCBHandler
>    at
> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:70)
>    at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>    at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:256)
>    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:421)
>    at
>
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
>    at
>
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
>    at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
>    at
> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:549)
>    at
> org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:146)
>    ... 34 more
> Caused by: org.apache.rampart.RampartException: Cannot load password
> callback class: PWCBHandler
>    at
> org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:139)
>    at
> org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:115)
>    at
>
> org.apache.rampart.builder.BindingBuilder.getSignatureBuider(BindingBuilder.java:263)
>    at
>
> org.apache.rampart.builder.AsymmetricBindingBuilder.doSignature(AsymmetricBindingBuilder.java:626)
>    at
>
> org.apache.rampart.builder.AsymmetricBindingBuilder.doSignBeforeEncrypt(AsymmetricBindingBuilder.java:413)
>    at
>
> org.apache.rampart.builder.AsymmetricBindingBuilder.build(AsymmetricBindingBuilder.java:93)
>    at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:147)
>    at
> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:64)
>    ... 42 more
> Caused by: java.lang.ClassNotFoundException: PWCBHandler
>    at
>
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
>    at
>
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
>    at
>
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
>    at
>
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
>    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>    at java.lang.Class.forName0(Native Method)
>    at java.lang.Class.forName(Class.java:164)
>    at org.apache.ws.security.util.Loader.loadClass(Loader.java:200)
>    at org.apache.ws.security.util.Loader.loadClass(Loader.java:163)
>    at
> org.apache.rampart.util.RampartUtil.getPasswordCB(RampartUtil.java:137)
>    ... 49 more
>
> How can I make my PWCBHandler class visible to my .aar?!
>
> Thanks
> --
> Francesco Stampacchia
>



-- 
Håkon Sagehaug, Scientific Programmer
Parallab, Bergen Center for Computational Science (BCCS)
UNIFOB AS (University of Bergen Research Company)
[email protected], phone +47 55584125

Reply via email to