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

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