[kepler-users] transfering proxy information between actors.

turuncu at be.itu.edu.tr turuncu at be.itu.edu.tr
Fri Feb 13 09:27:05 PST 2009


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.
>



-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.




More information about the Kepler-users mailing list