[kepler-users] transfering proxy information between actors.

Jianwu Wang jianwu at sdsc.edu
Fri Feb 13 09:52:43 PST 2009


Hi ufuk,

    That's great. Thanks for your work and info.

   Kindly reminder: most Kepler developers subscribed both kepler-user 
and kepler-dev mailing lists. You just need to send emails to one of them.

Best wishes

Sincerely yours

Jianwu Wang
jianwu at sdsc.edu

Scientific Workflow Automation Technologies (SWAT) Laboratory
San Diego Supercomputer Center 
University of California, San Diego
San Diego, CA, U.S.A. 



turuncu at be.itu.edu.tr wrote:
> Hi,
>
> I do one more test about the problem. I change the output port type (in
> MyProxy actor) from BaseType.STRING to BaseType.OBJECT and i send the
> byte[] array (stores credential information) from output port and i also
> modify GridFTP to accept BaseType.OBJECT from its input port. After
> changing token to byte array in GridFTP,
>
>     	ObjectToken o = (ObjectToken) input.get(0);
>     	byte[] data = (byte[]) o.getValue();
>
> i use same code for creating credential,
>
>         // load credential
>     	ExtendedGSSManager manager = (ExtendedGSSManager)
> ExtendedGSSManager.getInstance();
>
>     	GSSCredential cred = null;
>     	try {
>     		cred = manager.createCredential(
>     				data,
>     				ExtendedGSSCredential.IMPEXP_OPAQUE,
>     				GSSCredential.DEFAULT_LIFETIME,
>     				null,
>     				GSSCredential.INITIATE_AND_ACCEPT);
>     	} catch (GSSException e) {
>     		e.printStackTrace();
>     		//throw new IllegalActionException("MyGramJob: GSS exception.");
>     	}
>
> and it works ! I think the data lost in conversation into
> ByteArrayOutputStream and than to string. Anyway, i will create new actor
> sets that accept proxy information as in Object type.
>
> Best regards,
> Thanks for your helps,
>
> --ufuk
>
>   
>> Hi ufuk,
>>
>>     As far as I know, current GlobusJob actor was implemented long time
>> ago and does not support Globus 4.2. Probably also for GridFTP. Sorry
>> about the that.
>>
>>     I'm working on new version of these actor. I'll let you know once I
>> finish them.
>>
>> Best wishes
>>
>> Sincerely yours
>>
>> Jianwu Wang
>> jianwu at sdsc.edu
>>
>> Scientific Workflow Automation Technologies (SWAT) Laboratory
>> San Diego Supercomputer Center
>> University of California, San Diego
>> San Diego, CA, U.S.A.
>>
>>
>>
>> turuncu at be.itu.edu.tr wrote:
>>     
>>> Hi,
>>>
>>> I try to transfer proxy information from custom MyProxy actor to GridFTP
>>> and GlobusJob actors but it gives error. I done following tests,
>>>
>>> 1 - I modify GridFTP actor to get proxy information directly from
>>> MyProxy
>>> file (such as, /tmp/x509up_u501) and it is working successfully. So, it
>>> is
>>> possible to use MyProxy credential with Kepler grid actors. I just only
>>> add "getGSSCredential " method (which is return GSSCredential info) and
>>> modify code as follows;
>>>
>>> 			//ExtendedGSSManager manager = (ExtendedGSSManager)
>>> ExtendedGSSManager
>>> 			//		.getInstance();
>>> 			//_proxy = manager.createCredential((token.toString()).getBytes(),
>>> 			//		ExtendedGSSCredential.IMPEXP_OPAQUE,
>>> 			//		GSSCredential.DEFAULT_LIFETIME, null, // use default
>>> 			//												// mechanism - GSI
>>> 			//		GSSCredential.INITIATE_AND_ACCEPT);
>>> 			_proxy = getGSSCredential("/tmp/x509up_u501");
>>>
>>> 2 - I also test to modify output of custom MyProxy actor to send proxy
>>> info as String data type which is compatible with current version of
>>> GridFTP and GlobusJob actors (i don't want to modify current Kepler grid
>>> actors),
>>>
>>>        // read myproxy file
>>>     	File inFile = new File(filename);
>>>     	byte [] data = new byte[(int)inFile.length()];
>>>
>>>     	FileInputStream inStream = null;
>>>     	try {
>>>     		inStream = new FileInputStream(inFile);
>>>     		inStream.read(data);
>>>     		inStream.close();
>>>     	} catch (FileNotFoundException e) {
>>>     		e.printStackTrace();
>>>     	} catch (IOException e) {
>>>     		e.printStackTrace();
>>>     	}
>>>
>>>     	ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
>>>     	try {
>>> 		byteStream.write(data);
>>> 	} catch (IOException e) {
>>> 		e.printStackTrace();
>>> 	}
>>>     	output.send(0, new StringToken(byteStream.toString()));
>>>
>>> but GridFTP actor gives following error,
>>>
>>> ....
>>> Caused by: ptolemy.kernel.util.IllegalActionException: GridFTP transfer
>>> failed because of: GSSException: Defective credential detected [Caused
>>> by:
>>> Failed to load credentials. [Caused by: PEM footer missing]]
>>> 	at org.nmiworkflow.GridFTP.fire(GridFTP.java:212)
>>> ....
>>>
>>> It must be work but the information lost between conversion and
>>> transfer.
>>> I also try to add encoding information in both side to ensure that
>>> problem
>>> is not related with encoding problem and the result is same.
>>>
>>> 3 - I also try to generate proxy info with ProxyInitTool but the result
>>> is
>>> same.
>>>
>>> So, i will use the newer version of cog-jglobus api, jce-jdk and cryptix
>>> in my new suite. Is problem realted with that. If i use the same version
>>> with Kepler grid actors i get,
>>>
>>> ptolemy.kernel.util.IllegalActionException:   in
>>> .01-teragrid-myproxy.manager
>>> Because:
>>> org.bouncycastle.jce.PKCS10CertificationRequest.<init>(Ljava/lang/String;Lorg/bouncycastle/asn1/x509/X509Name;Ljava/security/PublicKey;Lorg/bouncycastle/asn1/DERConstructedSet;Ljava/security/PrivateKey;Ljava/lang/String;)V
>>> 	at ptolemy.actor.Manager.execute(Manager.java:465)
>>> 	at ptolemy.actor.Manager.run(Manager.java:1147)
>>> 	at ptolemy.actor.Manager$3.run(Manager.java:1188)
>>> Caused by: java.lang.NoSuchMethodError:
>>> org.bouncycastle.jce.PKCS10CertificationRequest.<init>(Ljava/lang/String;Lorg/bouncycastle/asn1/x509/X509Name;Ljava/security/PublicKey;Lorg/bouncycastle/asn1/DERConstructedSet;Ljava/security/PrivateKey;Ljava/lang/String;)V
>>> 	at
>>> org.earth.actors.globus.MyProxyLogon.getCredentials(MyProxyLogon.java:621)
>>> 	at org.earth.actors.globus.GlobusMyProxy.fire(GlobusMyProxy.java:196)
>>> 	at ptolemy.actor.AtomicActor.iterate(AtomicActor.java:434)
>>> 	at
>>> ptolemy.actor.sched.StaticSchedulingDirector.fire(StaticSchedulingDirector.java:188)
>>> 	at ptolemy.actor.CompositeActor.fire(CompositeActor.java:417)
>>> 	at ptolemy.actor.Manager.iterate(Manager.java:725)
>>> 	at ptolemy.actor.Manager.execute(Manager.java:349)
>>> 	... 2 more
>>>
>>> error messages which is related with incompatibilities of the libraries.
>>> Any comments will be helpful to solve the problem.
>>>
>>> Thanks,
>>>
>>> --ufuk
>>>
>>>
>>>
>>>       
>> --
>> This message has been scanned for viruses and
>> dangerous content by MailScanner, and is
>> believed to be clean.
>>
>>     
>
>
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nceas.ucsb.edu/kepler/pipermail/kepler-users/attachments/20090213/b09f6154/attachment.html>


More information about the Kepler-users mailing list