2010/07/26

Cordys: Authenticator is not instantiated via the properties

I was testing Basic Authentication with soapUI and got the following error:

"Authenticator is not instantiated via the properties".

<soapenv:Envelope xmlns:def="http://schemas.cordys.com/default" xmlns:mes="http://www.cvz.nl/csp/message" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

   <soapenv:Body>
      <soapenv:Fault>
         <faultcode xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">ns0:Client</faultcode>
         <faultstring xml:lang="en-US">User validation failed for: '5517'.</faultstring>
         <detail>
            <cordys:FaultDetails xmlns:cordys="http://schemas.cordys.com/General/1.0/">
               <cordys:LocalizableMessage>
                  <cordys:MessageCode>Cordys.ESBServer.Messages.userValidationFailed</cordys:MessageCode>
                  <cordys:Insertion>5517</cordys:Insertion>
               </cordys:LocalizableMessage>
            </cordys:FaultDetails>
            <cordys:FaultRelatedException xmlns:cordys="http://schemas.cordys.com/General/1.0/">com.eibus.security.identity.IdentityValidationException: Could not authenticate username '5517': Authenticator is not instantiated via the properties constructor
    at com.eibus.security.identity.WSSecurityUsernameTokenIdentityType.validate(WSSecurityUsernameTokenIdentityType.java:71)
    at com.eibus.soap.SOAPTransaction.&lt;init>(SOAPTransaction.java:349)
    at com.eibus.soap.SOAPTransaction.&lt;init>(SOAPTransaction.java:175)
    at com.eibus.soap.Processor.onReceive(Processor.java:956)
    at com.eibus.soap.Processor.onReceive(Processor.java:929)
    at com.eibus.connector.nom.Connector.onReceive(Connector.java:417)
    at com.eibus.transport.Middleware$NonTransactionalWorkerThreadBody.run(Middleware.java:1722)
    at com.eibus.util.threadpool.WorkerThread.run(WorkerThread.java:64)
Caused by: com.eibus.security.authentication.InvalidAuthenticatorException: Authenticator is not instantiated via the properties constructor
    at com.eibus.security.authentication.AuthenticatorFactory.getAuthenticator(AuthenticatorFactory.java:76)
    at com.eibus.security.identity.WSSecurityUsernameTokenIdentityType.validate(WSSecurityUsernameTokenIdentityType.java:63)
    ... 7 more</cordys:FaultRelatedException>
         </detail>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>

The first thing that came to mind was that the Service Group was not configured yet for CARS authentication, so i did:

  1. Open LDAP Explorer --> Expand the Organization where the service is deployed --> Expand 'soap nodes' --> Open the properties of the Service Group of that WebService Container
  2. Select ... (button) behind  'bussoapnodeconfiguration' to open the XML Editor with the Service Group configuration.
  3. Add the next line underneath <configuration>:  <authenticator implementation="com.eibus.security.authentication.CARSAuthenticator" />

I restarted the Service Container and the problem was solved.

No comments:

Post a Comment