What's the latest Java that doesn't have the security issues that Google 
finds?

I have a couple of Java plugins for Firefox that have been automatically 
disabled by FF because of known vulnerabilities.

My web reading leads to the conclusion that the underlying Java model is 
incapable of adequate security, so I avoid it like the plague! Why risk it?

Les

On 9/23/2016 7:16 AM, Rony G. Flatscher wrote:
> Hi Phillip,
>
> oops, forgot to point out that there are quite a few Java solutions that
> allow you to use sftp. Using BSF4ooRexx allows you to use them with pure
> ooRexx, no need to code in Java yourself.
>
> E.g. one solution uses <http://commons.apache.org/proper/commons-vfs/>
> (can be used from Java 1.5 on), so you would have to download that
> jar-file (jar="Java archive", a zip container of Java classes and
> sometimes with resources) and put its path into the environment variable
> named "CLASSPATH". Once on the CLASSPATH BSF4ooRexx can find all Java
> classes in that jar file and use them as if they were ooRexx classes.
> [The documentation for the Apache commons-vfs can be found here:
> <http://commons.apache.org/proper/commons-vfs/apidocs/index.html>.]
>
> The mentioned solution (uploading, downloading, deleting files using
> sftp) can be found here:
> <http://www.mysamplecode.com/2013/06/sftp-apache-commons-file-download.html>,
> so just read that page.
>
> Here is a transcription from the shown Java code to ooRexx (untested).
>
> Java-code for uploading a file via sftp:
>
>     // Upload file to remote server using SFTP package
>     com.as400samplecode; import java.io.File; import
>     java.io.FileInputStream; import java.util.Properties; import
>     org.apache.commons.vfs2.FileObject; import
>     org.apache.commons.vfs2.FileSystemOptions; import
>     org.apache.commons.vfs2.Selectors; import
>     org.apache.commons.vfs2.impl.StandardFileSystemManager; import
>     org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder;
>     public class SendMyFiles { static Properties props; public static
>     void main(String[] args) { SendMyFiles sendMyFiles = new
>     SendMyFiles(); if (args.length < 1) { System.err.println("Usage:
>     java " + sendMyFiles.getClass().getName()+ " Properties_file
>     File_To_FTP "); System.exit(1); } String propertiesFile =
>     args[0].trim(); String fileToFTP = args[1].trim();
>     sendMyFiles.startFTP(propertiesFile, fileToFTP); } public boolean
>     startFTP(String propertiesFilename, String fileToFTP){ props = new
>     Properties(); StandardFileSystemManager manager = new
>     StandardFileSystemManager(); try { props.load(new
>     FileInputStream("properties/" + propertiesFilename)); String
>     serverAddress = props.getProperty("serverAddress").trim(); String
>     userId = props.getProperty("userId").trim(); String password =
>     props.getProperty("password").trim(); String remoteDirectory =
>     props.getProperty("remoteDirectory").trim(); String localDirectory =
>     props.getProperty("localDirectory").trim(); //check if the file
>     exists String filepath = localDirectory + fileToFTP; File file = new
>     File(filepath); if (!file.exists()) throw new
>     RuntimeException("Error. Local file not found"); //Initializes the
>     file manager manager.init(); //Setup our SFTP configuration
>     FileSystemOptions opts = new FileSystemOptions();
>     SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(
>     opts, "no");
>     SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts,
>     true); SftpFileSystemConfigBuilder.getInstance().setTimeout(opts,
>     10000); //Create the SFTP URI using the host name, userid, password,
>     remote path and file name String sftpUri = "sftp://"; + userId + ":"
>     + password + "@" + serverAddress + "/" + remoteDirectory +
>     fileToFTP; // Create local file object FileObject localFile =
>     manager.resolveFile(file.getAbsolutePath()); // Create remote file
>     object FileObject remoteFile = manager.resolveFile(sftpUri, opts);
>     // Copy local file to sftp server remoteFile.copyFrom(localFile,
>     Selectors.SELECT_SELF); System.out.println("File upload
>     successful"); } catch (Exception ex) { ex.printStackTrace(); return
>     false; } finally { manager.close(); } return true; } }
>
> The ooRexx transcription (untested) could look like this:
>
>     -- Upload file to remote server using SFTP -- "main" method in a
>     Java class can be used as the (prolog) Rexx code parse arg
>     propertiesFile fileToFtp res=startFtp(propertiesFile,
>     fileToFtp~strip) say "startFtp() returned:" res "(0=.false,
>     1=.true=success)" ::routine startFTP use arg propertiesFilename,
>     fileToFTP props = .BSF~new("java.util.Properties") manager =
>     .BSF~new("org.apache.commons.vfs2.impl.StandardFileSystemManager")
>     -- no need to try and catch, if there is an error, the Rexx
>     interpreter will abort -- and give the respective Java exception
>     information props~load(.bsf~new("java.io.FileInputStream",
>     "properties/"propertiesFilename)) serverAddress =
>     props~getProperty("serverAddress" )~strip userID =
>     props~getProperty("userId" )~strip password =
>     props~getProperty("password" )~strip remoteDirectory =
>     props~getProperty("remoteDirectory")~strip localDirectory =
>     props~getProperty("localDirectory" )~strip -- check if the file
>     exists filepath = localDirectory || fileToFTP file =
>     .bsf~new("java.io.File", filepath) if \file~exists then raise syntax
>     90.900 array ("Error. Local file" pp(filepath) "not found") signal
>     on syntax -- from now on let us intercept any condition to close
>     manager and return .false -- Initializes the file manager
>     manager~init -- Setup our SFTP configuration opts =
>     .bsf~new("org.apache.commons.vfs2.FileSystemOptions")
>     
> SftpFileSystemConfigBuilder=bsf.import("org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder")
>     instance=SftpFileSystemConfigBuilder~getInstance
>     instance~setStrictHostKeyChecking(opt,"no")
>     instance~setUserDirIsRoot(opts, .true) instance~setTimeout(opts,
>     10000) -- Create the SFTP URI using the host name, userid, password,
>     remote path and file name -- String sftpUri = "sftp://"; + userId +
>     ":" + password + "@" + serverAddress + "/" + sftpUri =
>     "sftp://"userId":"password"@"serverAddress"/"remoteDirectory ||
>     fileToFTP -- Create local file object localFile =
>     manager~resolveFile(file~getAbsolutePath) -- Create remote file
>     object remoteFile = manager~resolveFile(sftpUri, opts) -- Copy local
>     file to sftp server
>     Selectors=bsf.import("org.apache.commons.vfs2.Selectors")
>     remoteFile~copyFrom(localFile, Selectors~SELECT_SELF) say "File
>     upload successful" manager~close return .true syntax: manager~close
>     return .false ::requires BSF.CLS -- load Java support
>
> One can transcribe the other two Java programs to pure ooRexx as well.
>
> HTH,
>
> ---rony
>
>
>
> On 23.09.2016 12:23, Rony G. Flatscher wrote:
>> Hi Phillip,
>>
>> On 23.09.2016 00:00, pr gramly wrote:
>>> Is there something like RxFtp for sftp protocol?
>>> I guess, more broadly, it would be a ooRexx class to use with ssh.
>> AFAIK there is no such ooRexx class in existence or in the works. Whoever 
>> implements such a
>> functionality for ooRexx needs to implement a security infrastructure (and 
>> keep it up-to-date) to be
>> used for sftp.
>>
>> However, if you use the ooRexx package "BSF4ooRexx", then you can use Java 
>> classes as ooRexx classes
>> and take advantage of any Java class (which will exploit the Java runtime 
>> deployed Java security
>> infrastructure on any operating system).
>>
>> To get an idea how you can take advantage of BSF4ooRexx take a look at e.g. 
>> the following slides:
>> <http://wi.wu.ac.at/rgf/wu/lehre/autojava/material/foils/AutoJava-BSF4ooRexx-03-Sockets.pdf>.
>>  These
>> slides introduce newbies into socket programming using Java classes instead 
>> of the ooRexx classes.
>> Then, starting with slide 23, an example is given for using ssl (which does 
>> not exist for ooRexx)
>> via ooRexx (using Java classes as if they were ooRexx classes).
>>
>> BSF4ooRexx is actually quite easy and straight forward camouflaging Java 
>> classes as ooRexx classes
>> and Java objects as ooRexx objects to which you merely send ooRexx messages! 
>> The latest version is
>> the (stable) beta at: 
>> <https://sourceforge.net/projects/bsf4oorexx/files/beta/20160815/>, read the
>> "readme" file!
>>
>> The introduction to BSF4ooRexx explaining the basic concepts can be found in 
>> the slides
>> <http://wi.wu.ac.at/rgf/wu/lehre/autojava/material/foils/AutoJava-BSF4ooRexx-01.pdf>.
>>
>> There is no need to learn programming in Java in order to use Java classes 
>> as ooRexx classes, you
>> merely need to be able to read the (online) documentation of the Java APIs, 
>> which is a set of
>> interconnected HTML-pages.
>>
>> If you have questions about BSF4ooRexx then just use the BSF4ooRexx mailing 
>> lists like
>> <bsf4oorexx-de...@lists.sourceforge.net> or 
>> <bsf4oorexx-supp...@lists.sourceforge.net>.
>>
>> ---rony
>>
>> P.S.: The latest BSF4ooRexx beta includes .Net support on the Windows 
>> platform, cf. the presentation
>> of this year's International Rexx symposium organized by 
>> <http://www.rexxla.org>.
>>
>
>
>
> ------------------------------------------------------------------------------
>
>
>
> _______________________________________________
> Oorexx-users mailing list
> Oorexx-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-users
>

------------------------------------------------------------------------------
_______________________________________________
Oorexx-users mailing list
Oorexx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-users

Reply via email to