On Fri, Feb 12, 2016 at 4:10 PM, Malithi Edirisinghe <[email protected]> wrote:
> Hi All, > > We upgraded the opensaml version from 2.4.1 to 2.6.4 in carbon-identity. > With this upgrade there are two opensaml versions at IS server runtime, > opensaml 2.4.1 coming from org.wso2.carbon.core.common.feature in kernel > and opensaml 2.6.4 coming from carbon identity features. > On the product built with this upgrade, the SCIM endpoint web > application(wso2.war) deployement fails intermittently with error [1] at > server startup. > > As we found out this is being caused due to a failure on building the > class space as one of the webapps dependencies wires to the older version > while another wires to the upgraded version. > So, as it seems, there is an older version of > org.wso2.carbon.identity.sso.agent coming from > org.wso2.carbon.webapp.mgt.server.feature in carbon deployment repo (carbon > deployment 4.5.3). This specifically uses opensaml 2.4.1 version. > The tomcat bundle uses dynamic imports, thus, if it wires with > org.wso2.carbon.identity.sso.agent, it wires with opensaml 2.4.1 version. > But, org.wso2.carbon.identity.core, which includes the class that reports > to be missing, always wires with opensaml 2.6.4 version as specified. > This causes the NoClassDefFoundError. > > p org.opensaml.xml.security.x509; > version="2.6.4.wso2v1"<opensaml_2.6.4.wso2v1 [94]> > org.jaggeryjs.modules.sso_1.5.0 [170] imports > org.wso2.carbon.hostobjects.sso_4.3.2 [225] imports > > org.wso2.carbon.identity.application.authenticator.passive.sts_5.0.8.SNAPSHOT > [239] imports > > org.wso2.carbon.identity.application.authenticator.samlsso_5.0.8.SNAPSHOT > [242] imports > org.wso2.carbon.identity.authenticator.saml2.sso_5.0.8.SNAPSHOT [252] > imports > org.wso2.carbon.identity.authenticator.saml2.sso.common_5.0.8.SNAPSHOT > [253] imports > org.wso2.carbon.identity.entitlement_5.0.8.SNAPSHOT [260] imports > org.wso2.carbon.identity.oauth_5.0.8.SNAPSHOT [270] imports > org.wso2.carbon.identity.provider_5.0.8.SNAPSHOT [274] imports > org.wso2.carbon.identity.sso.saml_5.0.8.SNAPSHOT [282] imports > org.wso2.carbon.identity.tools.saml.validator_5.0.8.SNAPSHOT [292] > imports > org.wso2.carbon.webapp.mgt_4.5.3 [421] imports > rampart-trust_1.6.1.wso2v17 [433] imports > wss4j_1.5.11.wso2v11 [460] imports > org.opensaml.xml.security.x509; > version="2.4.1.wso2v1"<opensaml2_2.4.1.wso2v1 [95]> > org.wso2.carbon.identity.sso.agent_4.5.6 [281] imports > tomcat_7.0.59.wso2v3 [450] imports > > org.wso2.carbon.identity.sso.agent bundle is an unwanted bundle in IS. So, > AFAIU, we have below options to solve this issue and successfully upgrade > the opensaml version. > > 1. Bundle org.wso2.carbon.identity.sso.agent_4.5.6 in a separate feature, > and import the feature from org.wso2.carbon.webapp.mgt.server.feature > rather than bundling the bundle itself. With this option, we will not have > the unwanted sso.agent bundle at IS server runtime. > If we create a feature for this, we will end up with multiple features for a bundle. There is already a feature for this at carbon-identity (org.wso2.carbon.identity.sso.agent.server.feature). IMO, if we can make this feature a standalone one, both carbon-deployment and carbon-identity can use it and we can remove the duplicate packaging of this bundle in multiple features. > 2. Upgrade the sso.agent version in > org.wso2.carbon.webapp.mgt.server.feature > > I think it's better if we could do the first option. > Please share your thoughts. > > [1] > java.lang.NoClassDefFoundError: > org/wso2/carbon/identity/core/util/IdentityConfigParser > at > org.wso2.carbon.identity.scim.provider.auth.SCIMAuthConfigReader.buildSCIMAuthenticators(SCIMAuthConfigReader.java:42) > at > org.wso2.carbon.identity.scim.provider.impl.ApplicationInitializer.initSCIMAuthenticatorRegistry(ApplicationInitializer.java:69) > at > org.wso2.carbon.identity.scim.provider.impl.ApplicationInitializer.contextInitialized(ApplicationInitializer.java:48) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5524) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) > at > org.wso2.carbon.tomcat.internal.CarbonTomcat.addWebApp(CarbonTomcat.java:290) > at > org.wso2.carbon.tomcat.internal.CarbonTomcat.addWebApp(CarbonTomcat.java:198) > -- > > *Malithi Edirisinghe* > Senior Software Engineer > WSO2 Inc. > > Mobile : +94 (0) 718176807 > [email protected] > -- *Kishanthan Thangarajah* Associate Technical Lead, Platform Technologies Team, WSO2, Inc. lean.enterprise.middleware Mobile - +94773426635 Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>* Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
