Feature #3366
closedJSAGA and Unicore6
0%
Description
Dear JSAGA support,
I am attempting to use JSAGA (commandline interface) with UNICORE 6. For gLite and Globus GT5, everything works. Many thanks!
I am facing some problems with UNICORE 6 and hope that you can help.
Myjsaga-default-contexts.xml is as such:
--
<contexts>
<context type="JKS">
<job type="unicore6"/>
<job type="bes-unicore"/>
</context>
...
</contexts>
<session>
<context type="JKS">
<attribute name="Keystore" value="${user.home}/.globus/keystore.jks"/>
<attribute name="KeystorePass" value="xxxxxxxx"/>
<attribute name="Truststore" value="${user.home}/.globus/certificates/truststore.jks"/>
<attribute name="TruststorePass" value="xxxxxx"/>
<attribute name="UserAlias" value="xxxxxx/>
</context>
</session>
The command I tried is after a successful "jsaga-context-init.sh JKS":
I tried UNICORE-BES
-----------------
1)
jsaga-job-run.sh -b -Executable /bin/hostname -r
bes-unicore://deisa-unic.fz-juelich.de:9111/FZJ_JUROPA/services/BESFactory?res=default_bes_factory
-Output /tmp/output.txt -Error /tmp/error.txt
UNICORE6
--------
2)
jsaga-job-run.sh b -Executable /bin/hostname -r
unicore6://prace-unic.fz-juelich.de:9111/?Target=PRACE -Output
/tmp/output.txt -Error /tmp/error.txt
3)
jsaga-job-run.sh -b -Executable /bin/hostname -r
unicore6://prace-unic.fz-juelich.de:9111/PRACE/services/Registry?res=default_registry
-Output /tmp/output.txt -Error /tmp/error.txt
----
The errors:
-----------
1)
Exception in thread "main" NoSuccess:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target
at
fr.in2p3.jsaga.adaptor.bes.job.BesJobControlAdaptorAbstract.submit(BesJobControlAdaptorAbstract.java:116)
at
fr.in2p3.jsaga.impl.job.instance.AbstractSyncJobImpl.doSubmit(AbstractSyncJobImpl.java:229)
at
fr.in2p3.jsaga.impl.task.AbstractTaskImpl.run(AbstractTaskImpl.java:102)
at fr.in2p3.jsaga.impl.job.instance.JobImpl.run(JobImpl.java:47)
at fr.in2p3.jsaga.command.JobRun.main(JobRun.java:86)
Caused by: javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at
org.ggf.schemas.bes.x2006.x08.besFactory.BESFactoryBindingStub.createActivity(BESFactoryBindingStub.java:697)
at
fr.in2p3.jsaga.adaptor.bes.job.BesJobControlAdaptorAbstract.submit(BesJobControlAdaptorAbstract.java:105)
... 4 more
Caused by: javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target
at
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1764)
at
com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241)
at
com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235)
at
com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206)
at
com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136)
at
com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
at
com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:958)
at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)
at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230)
at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1214)
at
org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
at
org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at
org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
... 15 more
Caused by: sun.security.validator.ValidatorException: PKIX path building
failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
at
sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:323)
at
sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:217)
at sun.security.validator.Validator.validate(Validator.java:218)
at
com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
at
com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
at
com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
at
com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185)
... 26 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
at
sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
at
java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
at
sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:318)
... 32 more
2) & 3)
Exception in thread "main" java.lang.IncompatibleClassChangeError:
Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at
org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getJavaImplClass(SchemaTypeImpl.java:1708)
at
org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getJavaImplConstructor(SchemaTypeImpl.java:1724)
at
org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createUnattachedNode(SchemaTypeImpl.java:1852)
at
org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createElementType(SchemaTypeImpl.java:1021)
at
org.apache.xmlbeans.impl.values.XmlObjectBase.create_element_user(XmlObjectBase.java:893)
at org.apache.xmlbeans.impl.store.Xobj.getUser(Xobj.java:1657)
at org.apache.xmlbeans.impl.store.Cur.getUser(Cur.java:2654)
at
org.apache.xmlbeans.impl.store.Xobj.insertElement(Xobj.java:2099)
at
org.apache.xmlbeans.impl.store.Xobj.add_element_user(Xobj.java:2179)
at
org.w3.x2005.x08.addressing.impl.EndpointReferenceDocumentImpl.addNewEndpointReference(Unknown
Source)
at
com.intel.gpe.wsrfclient.handlers.addressing_2005_08.EndpointReferenceUtil.createEndpointReference(EndpointReferenceUtil.java:57)
at
com.intel.gpe.clients.impl.registry.RegistryClientImpl.<init>(RegistryClientImpl.java:113)
at
fr.in2p3.jsaga.adaptor.u6.U6SecurityManagerImpl.getRegistryClient(U6SecurityManagerImpl.java:58)
at
fr.in2p3.jsaga.adaptor.u6.U6Abstract.findTargetSystem(U6Abstract.java:103)
at
fr.in2p3.jsaga.adaptor.u6.job.U6JobControlAdaptor.submit(U6JobControlAdaptor.java:341)
at
fr.in2p3.jsaga.impl.job.instance.AbstractSyncJobImpl.doSubmit(AbstractSyncJobImpl.java:229)
at
fr.in2p3.jsaga.impl.task.AbstractTaskImpl.run(AbstractTaskImpl.java:102)
at fr.in2p3.jsaga.impl.job.instance.JobImpl.run(JobImpl.java:47)
at fr.in2p3.jsaga.command.JobRun.main(JobRun.java:86)
My truststore.jks contains all CAs in EUGridPMA. As such, it should not be an issue. I have a valid certificate in keystore.jks. I tried my keystore.jks using unicore rich client. That works.
Can you perhaps tell me what did I do wrong?
Many thanks in advance.
Cheers,
Cerlane
Updated by Schwarz Lionel over 12 years ago
- Status changed from New to Assigned
- Assigned To set to Schwarz Lionel
Dear Cerlane,
For submitting to a Unicore system, you can either use the "bes-unicore" adaptor or the "unicore" adaptor (and not "unicore6" which is the deprecated name).
1) you have to setup a "AxisJKS" security context, because the "JKS" context does not work against the Axis layer used in the BES API.
So configure your context as:
<session>
<context type="AxisJKS">
<job type="bes-unicore"/>
<attribute name="UserAlias" value="xxxxxx/>
</context>
</session>
and set the following JVM properties before launch:
javax.net.ssl.keyStore=...
javax.net.ssl.keyStorePassword=...
javax.net.ssl.trustStore=...
javax.net.ssl.trustStorePassword=...
See:
http://grid.in2p3.fr/software/jsaga-dev/adaptors/jsaga-adaptor-bes-unicore6/faq.html
2 & 3) Use the "JKS" context with:
<job type="unicore"/>
instead of
<job type="unicore6"/>
JSAGA with an URL like:
jsaga-job-run.sh b -Executable /bin/hostname -r
unicore://prace-unic.fz-juelich.de:9111/?Target=PRACE -Output
/tmp/output.txt -Error /tmp/error.txt
See:
http://grid.in2p3.fr/software/jsaga-dev/adaptors/jsaga-adaptor-unicore/faq.html
Cheers,
Lionel
Updated by Schwarz Lionel over 12 years ago
- Status changed from Assigned to Closed