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

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