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.<init>(SOAPTransaction.java:349)
at com.eibus.soap.SOAPTransaction.<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:
I restarted the Service Container and the problem was solved.
"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.<init>(SOAPTransaction.java:349)
at com.eibus.soap.SOAPTransaction.<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:
- 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
- Select ... (button) behind 'bussoapnodeconfiguration' to open the XML Editor with the Service Group configuration.
- Add the next line underneath <configuration>: <authenticator implementation="com.eibus.security.authentication.CARSAuthenticator" />
I restarted the Service Container and the problem was solved.
Reacties
Een reactie posten