During XACML Policy published issue in WSO2 API - wso2

After creating the XACML Policy trying to publish it to PDP, but getting error
[2014-07-10 06:30:15,910] ERROR - ApplicationDispatcher
Servlet.service() for servlet bridgeservlet threw exception
java.lang.NoSuchMethodError:
org.wso2.carbon.identity.entitlement.stub.EntitlementPolicyAdminServiceStub.publishPolicies([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)
at org.wso2.carbon.identity.entitlement.ui.client.EntitlementPolicyAdminServiceClient.publish(EntitlementPolicyAdminServiceClient.java:414)
at org.apache.jsp.entitlement.publish_002dfinish_jsp._jspService(org.apache.jsp.entitlement.publish_002dfinish_jsp:133)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:155)
at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
Could you please suggest to resolve the above error.
Thanks,
Asit

I too encountered this issue and the reason was due to some conflicts of copying org.wso2.carbon.identity.entitlement.stub jars in different versions when installing XACML via feature manager. If you are installing XACML 2.2 and XACML mediator 2.2 it should copy org.wso2.carbon.identity.entitlement.stub 4.2.1. I could resolve it as follows,
Go to /repository/components and open artifacts.xml.
Find the artifact id 'org.wso2.carbon.identity.entitlement.stub and change the version to 4.2.1 (there may have two artifacts with different versions 4.2.0 and 4.2.1)
Go to /repository/components/default/configuration/org.eclipse.equinox.simpleconfigurator and open bundles.info file.
Find the line org.wso2.carbon.identity.entitlement.stub,4.2.0 and remove it. (there should be a same entry with version 4.2.1)
Then try to publish to PDP
Thanks,
Nipuni

This has been already answered by an another SO answer, You also can check it for more details. Please find from here.
If you are using APIM 1.7.0 and If you install XACML feature 4.2.2, you would not see such error.

Related

Exception running the WSO2 Identity Server STS Client

I running the STS Client from sample located in
https://docs.wso2.com/display/IS540/Downloading+a+Sample
I am using 'sts-policy-ut.xml' as my policy (please refer to the code). I get the SAML2 tokens and I can validate too. When when I enable relyingPary flag in the 'client.properties' file, I get the following error :
java.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to org.w3c.dom.Element
at org.apache.rampart.builder.BindingBuilder.handleSupportingTokens(BindingBuilder.java:392)
at org.apache.rampart.builder.SymmetricBindingBuilder.doSignBeforeEncrypt(SymmetricBindingBuilder.java:499)
at org.apache.rampart.builder.SymmetricBindingBuilder.build(SymmetricBindingBuilder.java:86)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:144)
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:262)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:427)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
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:555)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531)
at org.wso2.carbon.identity.samples.sts.Client.run(Client.java:239)
at org.wso2.carbon.identity.samples.sts.Client.main(Client.java:95)
Please let me know how to fix it. I just using the recommended Maven way to build the project and running the supplied batch file.
I finally upgraded the Axis 2 library including the Ramapart jars to the following :
i) Axis 2 - 1.7.7
ii) Rampart - 1.7.0
This solved the problem. So this seems to be a bug with Axis 1.6.1 the version which the WSO2 uses for its examples.

WSO2 Integrator 6.1.1 HTTP Session Replication : Non-serializable attribute CarbonAuthenticator

I have 2 WSO2 Enterprise Integrator behind a load balancer.
I want to activate the tomcat http session replication, and followed the WSO2 documentation.
It seems quite simple :
Add
<Cluster className="org.wso2.carbon.core.session.CarbonTomcatSimpleTcpCluster"/>
and
<Valve className="org.wso2.carbon.webapp.mgt.session.CarbonTomcatSessionReplicationValve"/>
in catalina-server.xml, and make application distributable by adding <distributable/>
in web.xml.
Badly, it seems that WSO2 add some non serializable attributes to the session, making the replication fail.
When I try to connect to the carbon application, I get the following exception :
ERROR - ApplicationDispatcher Servlet.service() for servlet bridgeservlet threw exception java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute CarbonAuthenticator
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1453)
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1413)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:149)
at org.eclipse.equinox.http.servlet.internal.HttpSessionAdaptor.setAttribute(HttpSessionAdaptor.java:96)
at org.wso2.carbon.ui.tracker.AuthenticatorRegistry.getCarbonAuthenticator(AuthenticatorRegistry.java:82)
at org.wso2.carbon.ui.CarbonUILoginUtil.getAuthenticator(CarbonUILoginUtil.java:69)
at org.wso2.carbon.ui.CarbonSecuredHttpContext.handleSecurity(CarbonSecuredHttpContext.java:76)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:60)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
Precision : I tried with a fresh WSO2EI 6.1.1 installation, doing only the previously described modifications.
I also had to manually add tomcat-juli-7.0.75.jar and tomcat-trives-7.0.75.jar on wso2/lib/endorsed to avoid ClassNotFoundException.
I checked the WSO2 source code, and saw that the CarbonAuthenticator class is effectively non serializable.
Does anyone already configured the http session replication successfully ?
Thanks in advance,
Regards,
Laurent

Error importing Swagger Endpoint

The swagger file that I have created for my demo end point is valid according to the swagger validator. Unfortunately, when I attempt to import the API into GREG via the swagger json I'm told there is an error. The failure occurs whether I'm importing the file or accessing it via the URL. The message is nearly useless and the stack trace is pasted below:
Caused by: org.wso2.carbon.registry.core.exceptions.RegistryException: Failed to add resource /_system/governance/apimgt/applicationdata/api-docs/0.0.1/api-docs.json. An exception occurred while executing handler chain. Some or all of the arguments may be null. Cannot add the endpoint to registry.
at org.wso2.carbon.registry.resource.services.utils.AddResourceUtil.addResource(AddResourceUtil.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
What is GREG expecting that isn't part of the swagger definition I have created? Why is it throwing an error?
It is currently a limitation with GReg-5.1.0.
https://wso2.org/jira/browse/REGISTRY-3195
Has a workaround, and this will be properly fixed in a later version of the product.
This is fixed in new G-Reg 5.2.0. You can download G-Reg 5.2.0 from here.
If you want to stick to G-Reg 5.1.0, you can always backport the fix by applying this fix as a patch.
Hope this helps.

wso2 IS: Oauth hidden by default; gives exceptions when manually "unhidden"

After installing the Identity Server, I can't follow the tutorial
here
because "OAuth" doesn't appear under main->manage in the admin console. Inspecting carbon.xml shows that it is hidden by default (reasonable explanations are welcome).
Enabling it in carbon.xml makes it appear, but when I register a new application, I get this error:
ERROR {org.apache.catalina.core.ApplicationDispatcher} - Servlet.service() for servlet
bridgeservlet threw exception {org.apache.catalina.core.ApplicationDispatcher}
java.lang.NullPointerException
at org.apache.jsp.application.configure_002dservice_002dprovider_jsp._jspService(org.apache.jsp.application.configure_002dservice_002dprovider_jsp:155)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
...
ERROR {org.apache.tiles.jsp.taglib.RoleSecurityTagSupport} - IO Error executing tag: JSPException
while including path '/application/configure-service-provider.jsp'. ServletException while
including page. {org.apache.tiles.jsp.taglib.RoleSecurityTagSupport}
java.io.IOException: JSPException while including path '/application/configure-service-provider.jsp'. ServletException while including page.
at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:91)
at org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:82)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:465)
....
Anybody else seen this before? I'm using WSO2 Identity Server 5.0.0
That article was written for WSO2 IS 4.6.0 and have not tried in IS 5.0 yet. But you should be able to get it working with IS 5.0 too. The only challenge is IS 5.0 has a little different UI structure than 4.6.0.
For OAuth related configuration in IS 5.0, please go to Service Providers and add a new Service Provider. Then go to Inbound Authentication Configurations > OAuth/OpenID Connect Configuration > Configure
Hope this helps.
Edit: You can find official docs here.

WSO2 Governance Registry with UDDI

I´m using WSO2 Governance Registry 4.5.1.
I want to use UDDI, I download the version WSO2 Governance Registry 4.5.1 and I followed de instruction here http://docs.wso2.org/wiki/display/Governance450/Support+for+UDDI but I get the next error:
[2012-12-06 17:11:13,635] INFO {org.wso2.carbon.core.deployment.DeploymentInter
ceptor} - Deploying Axis2 service: UDDIReplicationService {super-tenant}
[2012-12-06 17:11:16,220] **ERROR {org.wso2.carbon.registry.uddi.servlet.JUDDIRegi
stryServlet} - jUDDI registry could not be started.java.lang.ArrayIndexOutOfBou
ndsException: 0**
org.apache.commons.configuration.ConfigurationException: java.lang.ArrayIndexOut
OfBoundsException: 0
at org.apache.juddi.config.AppConfig.getPersistentConfiguration(AppConfig.java:122)
at org.apache.juddi.config.AppConfig.loadConfiguration(AppConfig.java:95)
at org.apache.juddi.config.AppConfig.<init>(AppConfig.java:62)
at org.apache.juddi.config.AppConfig.getInstance(AppConfig.java:183)
at org.apache.juddi.config.AppConfig.getConfiguration(AppConfig.java:205)
at org.apache.juddi.Registry.start(Registry.java:55)
at org.wso2.carbon.registry.uddi.servlet.JUDDIRegistryServlet.init(JUDDI
RegistryServlet.java:25)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.init(Se
rvletRegistration.java:64)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.registerServle
t(ProxyServlet.java:142)
at org.eclipse.equinox.http.servlet.internal.HttpServiceImpl.registerSer
vlet(HttpServiceImpl.java:59)
at org.wso2.carbon.registry.servlet.internal.RegistryAtomServiceComponen
t.registerJUDDIServlet(RegistryAtomServiceComponent.java:96)
at org.wso2.carbon.registry.servlet.internal.RegistryAtomServiceComponen
t.setJUDDIRegistryServlet(RegistryAtomServiceComponent.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Do I forget any step?
Any suggestion???
Thank you very much.
Please try using Governance Registry 4.5.3 instead. 4.5.1 version did have some limitations which is probably why you are seeing this. However, even in 4.5.3, there are a few known issues which would impact certain UDDI operations, but most of the UDDI functionality is working in 4.5.3.
Thanks,
Senaka.