home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 September / PCO_0998.ISO / browser / ns405lyc / nav40.z / java40.jar / netscape / secfile / SecureFileInputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-03-24  |  1.8 KB  |  63 lines

  1. package netscape.secfile;
  2.  
  3. import java.io.FileDescriptor;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.IOException;
  7. import netscape.security.Principal;
  8. import netscape.security.PrivilegeManager;
  9.  
  10. public class SecureFileInputStream extends FileInputStream {
  11.    private String prepend;
  12.    private Principal prin;
  13.  
  14.    public SecureFileInputStream(String var1) throws FileNotFoundException {
  15.       this(var1, SecureFile.getClassPrincipal(1), 1);
  16.    }
  17.  
  18.    public SecureFileInputStream(SecureFile var1) throws FileNotFoundException {
  19.       this(var1.getPath(), var1.getPrincipal(), 1);
  20.    }
  21.  
  22.    public SecureFileInputStream(FileDescriptor var1) {
  23.       this(var1, PrivilegeManager.enableTarget("UniversalFdRead"));
  24.       this.prin = null;
  25.    }
  26.  
  27.    private static FileDescriptor rethrow(String var0, String var1) throws FileNotFoundException {
  28.       PrivilegeManager.enableTarget("UniversalFileRead");
  29.  
  30.       FileInputStreamNoFinalize var2;
  31.       try {
  32.          var2 = new FileInputStreamNoFinalize(var0);
  33.       } catch (FileNotFoundException var4) {
  34.          throw new FileNotFoundException(var1);
  35.       }
  36.  
  37.       try {
  38.          return ((FileInputStream)var2).getFD();
  39.       } catch (IOException var3) {
  40.          throw new SecureFileException("Internal error");
  41.       }
  42.    }
  43.  
  44.    public SecureFileInputStream(String var1, Principal var2) throws FileNotFoundException {
  45.       this(var1, var2, 1);
  46.    }
  47.  
  48.    SecureFileInputStream(String var1, Principal var2, int var3) throws FileNotFoundException {
  49.       this(rethrow(SecureFile.getPrependedPath(SecureFile.getPrepend(var2, var3 + 1), var1), var1), PrivilegeManager.enableTarget("UniversalFdRead"));
  50.       this.prepend = SecureFile.getPrepend(var2, var3 + 1);
  51.       SecureFile.checkCanonicalPath(var1, this.prepend);
  52.       this.prin = var2;
  53.    }
  54.  
  55.    private SecureFileInputStream(FileDescriptor var1, Object var2) {
  56.       super(var1);
  57.    }
  58.  
  59.    public Principal getPrincipal() {
  60.       return this.prin;
  61.    }
  62. }
  63.