Hi,

As the security tests tend to fail when running integration tests, I ran
the security scenarios manually. Below shows the observations I got. The
exceptions thrown in each failed test is given at the latter part.

Test class : SecurityTransformationProxyForPolicy8BackEndTestCase

Security Scenario         Status.

1                                Passed
2                                Failed (The exception occurs in the
response path. )
3                                Passed
4                                Passed
5                                Failed (The exception occurs in the
response path. )
6                                Passed
7                                Passed
8                                Passed
9                                Passed
10                              Passed
11                              Passed
12                              Passed
13                              Passed
14                              Passed
15                              Passed

Note that all the security policies were applied to a single proxy service.
The policies successfully get applied and removed when changing. However
when running integration tests, sometimes it doesn't remove the previous
policies and  hence some tests failed (They pass when run in isolation or a
separate proxy service is created for each security policy).

Whn debugging the failed tests it showed that in response path, when trying
to retrieve the cacheManager, an NPE is thrown. These tests get passed
successfully in ESB 4.7.0. The exception thrown at the failed tests:


[2013-08-14 07:31:36,366] ERROR - ServicePasswordCallbackHandler Tenant
domain has not been set in CarbonContext
java.lang.NullPointerException: Tenant domain has not been set in
CarbonContext
at
org.wso2.carbon.caching.impl.CacheManagerFactoryImpl.getCacheManager(CacheManagerFactoryImpl.java:79)
at
org.wso2.carbon.registry.core.utils.RegistryUtils.getCacheManager(RegistryUtils.java:289)
at
org.wso2.carbon.registry.core.utils.RegistryUtils.getResourceCache(RegistryUtils.java:272)
at
org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getCache(CacheBackedRegistry.java:62)
at
org.wso2.carbon.registry.core.caching.CacheBackedRegistry.resourceExists(CacheBackedRegistry.java:246)
at
org.wso2.carbon.registry.core.session.UserRegistry.resourceExists(UserRegistry.java:629)
at
org.wso2.carbon.security.util.ServicePasswordCallbackHandler.getPrivateKeyPassword(ServicePasswordCallbackHandler.java:247)
at
org.wso2.carbon.security.util.ServicePasswordCallbackHandler.handle(ServicePasswordCallbackHandler.java:93)
at
org.apache.rampart.builder.BindingBuilder.getSignatureBuilder(BindingBuilder.java:316)
at
org.apache.rampart.builder.BindingBuilder.getSignatureBuilder(BindingBuilder.java:263)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.doSignature(AsymmetricBindingBuilder.java:717)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.doSignBeforeEncrypt(AsymmetricBindingBuilder.java:414)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.build(AsymmetricBindingBuilder.java:90)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:147)
at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:65)
at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:426)
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:161)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:308)
at
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:92)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:239)
at
org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:443)
at
org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:166)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at
org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:222)
at
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
[2013-08-14 07:31:36,521] ERROR - ServicePasswordCallbackHandler Tenant
domain has not been set in CarbonContext
java.lang.NullPointerException: Tenant domain has not been set in
CarbonContext
at
org.wso2.carbon.caching.impl.CacheManagerFactoryImpl.getCacheManager(CacheManagerFactoryImpl.java:79)
at
org.wso2.carbon.registry.core.utils.RegistryUtils.getCacheManager(RegistryUtils.java:289)
at
org.wso2.carbon.registry.core.utils.RegistryUtils.getResourceCache(RegistryUtils.java:272)
at
org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getCache(CacheBackedRegistry.java:62)
at
org.wso2.carbon.registry.core.caching.CacheBackedRegistry.resourceExists(CacheBackedRegistry.java:246)
at
org.wso2.carbon.registry.core.session.UserRegistry.resourceExists(UserRegistry.java:629)
at
org.wso2.carbon.security.util.ServicePasswordCallbackHandler.getPrivateKeyPassword(ServicePasswordCallbackHandler.java:247)
at
org.wso2.carbon.security.util.ServicePasswordCallbackHandler.handle(ServicePasswordCallbackHandler.java:93)
at
org.apache.rampart.builder.BindingBuilder.getSignatureBuilder(BindingBuilder.java:316)
at
org.apache.rampart.builder.BindingBuilder.getSignatureBuilder(BindingBuilder.java:263)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.doSignature(AsymmetricBindingBuilder.java:717)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.doSignBeforeEncrypt(AsymmetricBindingBuilder.java:414)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.build(AsymmetricBindingBuilder.java:90)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:147)
at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:65)
at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:426)
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:161)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:308)
at
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:92)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:239)
at
org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:443)
at
org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:166)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at
org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:222)
at
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
[2013-08-14 07:31:36,523] ERROR - Axis2Sender Unexpected error sending
message back
org.apache.axis2.AxisFault: Error in getting password for user :
"wso2carbon"
at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:76)
at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:426)
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:161)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:308)
at
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:92)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:239)
at
org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:443)
at
org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:166)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at
org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:222)
at
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.rampart.RampartException: Error in getting password
for user : "wso2carbon"
at
org.apache.rampart.builder.BindingBuilder.getSignatureBuilder(BindingBuilder.java:330)
at
org.apache.rampart.builder.BindingBuilder.getSignatureBuilder(BindingBuilder.java:263)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.doSignature(AsymmetricBindingBuilder.java:717)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.doSignBeforeEncrypt(AsymmetricBindingBuilder.java:414)
at
org.apache.rampart.builder.AsymmetricBindingBuilder.build(AsymmetricBindingBuilder.java:90)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:147)
at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:65)
... 18 more
Caused by: javax.security.auth.callback.UnsupportedCallbackException:
Tenant domain has not been set in CarbonContext
at
org.wso2.carbon.security.util.ServicePasswordCallbackHandler.handle(ServicePasswordCallbackHandler.java:152)
at
org.apache.rampart.builder.BindingBuilder.getSignatureBuilder(BindingBuilder.java:316)
... 24 more


Thanks,
Nalin.
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to