Uploaded image for project: 'EJBCA'
  1. EJBCA
  2. ECA-8306

WS API compatibility broken due to removed hard token methods

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: EJBCA 7.1.0
    • Fix Version/s: EJBCA 7.2.0
    • Component/s: None
    • Labels:
    • Issue discovered during:
      Customer
    • Sprint:
      EJBCA Team Bob - 2019 w24

      Description

      The Web Service API compatibility is broken due to hard token methods having been removed.

      This causes a stack trace when any WS method is invoked on 7.1.0 or later with a pre-7.1.0 client

      javax.xml.ws.WebServiceException: Method revokeToken is exposed as WebMethod, but there is no corresponding wsdl operation with name revokeToken in the wsdl:portType{http://ws.protocol.core.ejbca.org/}EjbcaWS
      org.ejbca.ui.cli.ErrorAdminCommandException: javax.xml.ws.WebServiceException: Method revokeToken is exposed as WebMethod, but there is no corresponding wsdl operation with name revokeToken in the wsdl:portType{http://ws.protocol.core.ejbca.org/}EjbcaWS
      	at org.ejbca.core.protocol.ws.client.FindUserCommand.execute(FindUserCommand.java:155)
      	at org.ejbca.core.protocol.ws.client.ejbcawsracli.main(ejbcawsracli.java:38)
      	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)
      	at org.ejbca.ui.cli.EjbcaWsRaCli.execute(EjbcaWsRaCli.java:37)
      	at org.ejbca.ui.cli.ClientToolBox.executeIfSelected(ClientToolBox.java:40)
      	at org.ejbca.ui.cli.ClientToolBox.main(ClientToolBox.java:67)
      Caused by: javax.xml.ws.WebServiceException: Method revokeToken is exposed as WebMethod, but there is no corresponding wsdl operation with name revokeToken in the wsdl:portType{http://ws.protocol.core.ejbca.org/}EjbcaWS
      	at com.sun.xml.internal.ws.model.JavaMethodImpl.freeze(JavaMethodImpl.java:341)
      	at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.freeze(AbstractSEIModelImpl.java:94)
      	at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:240)
      	at com.sun.xml.internal.ws.client.WSServiceDelegate.createSEIPortInfo(WSServiceDelegate.java:673)
      	at com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:661)
      	at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:330)
      	at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:313)
      	at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:295)
      	at javax.xml.ws.Service.getPort(Service.java:119)
      	at org.ejbca.core.protocol.ws.client.gen.EjbcaWSService.getEjbcaWSPort(EjbcaWSService.java:72)
      	at org.ejbca.core.protocol.ws.client.EJBCAWSRABaseCommand.getEjbcaRAWS(EJBCAWSRABaseCommand.java:208)
      	at org.ejbca.core.protocol.ws.client.EJBCAWSRABaseCommand.getEjbcaRAWS(EJBCAWSRABaseCommand.java:187)
      	at org.ejbca.core.protocol.ws.client.FindUserCommand.execute(FindUserCommand.java:115)
      	... 8 more
      

      To reproduce
      Build clientToolBox on an older version (for example 6.15), and run it against a current version of EJBCA. You may need to modify ejbcawsracli.properties to point it to the correct admin P12 and URL.

      dist/clientToolBox/ejbcaClientToolBox.sh EjbcaWsRaCli finduser  USERNAME EQUALS someuser
      

        Attachments

          Activity

            People

            Assignee:
            samuel Samuel Lidén Borell
            Reporter:
            samuel Samuel Lidén Borell
            Verified by:
            Henrik Sunmark
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 1 hour Original Estimate - 1 hour
                1h
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 3 hours
                3h