wso2 - Custom Claim Handling Failed In Single Sign On -
i using wso2 identity server single sign on implementations.
in demo applications trying custom claim attributes of authenticated user own jdbc database.
i followed blog of pushpalanka.
this worked fine identity server 5.0.0
but when updated identity server latest update "wso2-is-5.0.0-sp01", custom claim handling stopped working.
following error stack :
[2015-04-22 19:09:43,311] error {org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.defaultstepbasedsequencehandler} - claim handling failed! org.wso2.carbon.identity.application.authentication.framework.exception.frameworkexception: index: 0, size: 0 @ com.wso2.sample.claim.handler.customclaimhandler.handlelocalclaims(customclaimhandler.java:200) @ com.wso2.sample.claim.handler.customclaimhandler.handleclaimmappings(customclaimhandler.java:66) @ org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.defaultstepbasedsequencehandler.handleclaimmappings(defaultstepbasedsequencehandler.java:604) @ org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.defaultstepbasedsequencehandler.handlepostauthentication(defaultstepbasedsequencehandler.java:394) @ org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.defaultstepbasedsequencehandler.handle(defaultstepbasedsequencehandler.java:134) @ org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.defaultauthenticationrequesthandler.handle(defaultauthenticationrequesthandler.java:121) @ org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.defaultrequestcoordinator.handle(defaultrequestcoordinator.java:94) @ org.wso2.carbon.identity.application.authentication.framework.servlet.commonauthenticationservlet.dopost(commonauthenticationservlet.java:54) @ javax.servlet.http.httpservlet.service(httpservlet.java:755) @ javax.servlet.http.httpservlet.service(httpservlet.java:848) @ org.eclipse.equinox.http.helper.contextpathservletadaptor.service(contextpathservletadaptor.java:37) @ org.eclipse.equinox.http.servlet.internal.servletregistration.service(servletregistration.java:61) @ org.eclipse.equinox.http.servlet.internal.proxyservlet.processalias(proxyservlet.java:128) @ org.eclipse.equinox.http.servlet.internal.proxyservlet.service(proxyservlet.java:60) @ javax.servlet.http.httpservlet.service(httpservlet.java:848) @ org.wso2.carbon.tomcat.ext.servlet.delegationservlet.service(delegationservlet.java:68) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.wso2.carbon.tomcat.ext.filter.charactersetfilter.dofilter(charactersetfilter.java:61) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:243) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:222) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:123) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:472) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:171) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:99) @ org.wso2.carbon.tomcat.ext.valves.compositevalve.continueinvocation(compositevalve.java:178) @ org.wso2.carbon.tomcat.ext.valves.carbontomcatvalve$1.invoke(carbontomcatvalve.java:47) @ org.wso2.carbon.webapp.mgt.tenantlazyloadervalve.invoke(tenantlazyloadervalve.java:56) @ org.wso2.carbon.tomcat.ext.valves.tomcatvalvecontainer.invokevalves(tomcatvalvecontainer.java:47) @ org.wso2.carbon.tomcat.ext.valves.compositevalve.invoke(compositevalve.java:141) @ org.wso2.carbon.tomcat.ext.valves.carbonstuckthreaddetectionvalve.invoke(carbonstuckthreaddetectionvalve.java:156) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:936) @ org.wso2.carbon.tomcat.ext.valves.carboncontextcreatorvalve.invoke(carboncontextcreatorvalve.java:52) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:407) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1004) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:589) @ org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(nioendpoint.java:1653) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:745) caused by: java.lang.indexoutofboundsexception: index: 0, size: 0 @ java.util.arraylist.rangecheck(arraylist.java:635) @ java.util.arraylist.get(arraylist.java:411) @ org.wso2.carbon.claim.mgt.claimmanagerhandler.validateclaims(claimmanagerhandler.java:668) @ org.wso2.carbon.claim.mgt.claimmanagerhandler.getmappingsfromotherdialecttocarbon(claimmanagerhandler.java:529) @ org.wso2.carbon.claim.mgt.claimmanagerhandler.getmappingsmapfromotherdialecttocarbon(claimmanagerhandler.java:614) @ com.wso2.sample.claim.handler.customclaimhandler.handlelocalclaims(customclaimhandler.java:141).
according study on source code of identity server problem in authentication framework @ org.wso2.identity.application.authentication.framewotk component.
the problem might in validating claims didnt found method named validateclaims in source code.
in source code given in blog post, authentication framework version - 4.2.2 used.
i tried using latest version of authentication framework - 4.2.3.
but problem still in same component.
i still giving efforts on this. need guidance on this.
please if missing or of have faced same problem.
thanks.
i see commonly problem custom modules between minor version updates. see our custom authenticator may not work after not-yet-issued patch. need custom claim handling?
we have extended claim dialect claims , attributes needed returned service provider , default framework implementation read , user/return requested user attributes. of cases should enough.