<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi ufuk,<br>
<br>
    That's great. Thanks for your work and info.<br>
<br>
   Kindly reminder: most Kepler developers subscribed both kepler-user
and kepler-dev mailing lists. You just need to send emails to one of
them.<br>
<br>
<pre class="moz-signature" cols="72">Best wishes

Sincerely yours

Jianwu Wang
<a class="moz-txt-link-abbreviated" href="mailto:jianwu@sdsc.edu">jianwu@sdsc.edu</a>

Scientific Workflow Automation Technologies (SWAT) Laboratory
San Diego Supercomputer Center 
University of California, San Diego
San Diego, CA, U.S.A. </pre>
<br>
<br>
<a class="moz-txt-link-abbreviated" href="mailto:turuncu@be.itu.edu.tr">turuncu@be.itu.edu.tr</a> wrote:
<blockquote
 cite="mid:49525.128.117.45.56.1234546025.squirrel@webmail.be.itu.edu.tr"
 type="cite">
  <pre wrap="">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

  </pre>
  <blockquote type="cite">
    <pre wrap="">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
<a class="moz-txt-link-abbreviated" href="mailto:jianwu@sdsc.edu">jianwu@sdsc.edu</a>

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



<a class="moz-txt-link-abbreviated" href="mailto:turuncu@be.itu.edu.tr">turuncu@be.itu.edu.tr</a> wrote:
    </pre>
    <blockquote type="cite">
      <pre wrap="">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



      </pre>
    </blockquote>
    <pre wrap="">--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

    </pre>
  </blockquote>
  <pre wrap=""><!---->


  </pre>
</blockquote>
</body>
</html>