home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / netscape / secfile / SecureRandomAccessFile.class (.txt) < prev   
Encoding:
Java Class File  |  2000-08-15  |  2.4 KB  |  67 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.    static String CheckLimitedFileAccess(String var0) {
  14.       PrivilegeManager.checkPrivilegeEnabled("LimitedFileAccess");
  15.       return var0;
  16.    }
  17.  
  18.    public SecureRandomAccessFile(String var1, String var2) throws IOException {
  19.       this(var1, var2, SecureFile.getClassPrincipal(1), 1);
  20.    }
  21.  
  22.    public SecureRandomAccessFile(SecureFile var1, String var2) throws IOException {
  23.       this(var1.getPath(), var2, var1.getPrincipal(), 1);
  24.    }
  25.  
  26.    public SecureRandomAccessFile(FileDescriptor var1, String var2) {
  27.       this(var1, var2, PrivilegeManager.enableTarget(CheckLimitedFileAccess("UniversalFdRead")), PrivilegeManager.enableTarget(CheckLimitedFileAccess("UniversalFdWrite")));
  28.       this.prin = null;
  29.    }
  30.  
  31.    private static FileDescriptor rethrow(String var0, String var1, String var2) throws IOException {
  32.       PrivilegeManager.enableTarget(CheckLimitedFileAccess("UniversalFileAccess"));
  33.  
  34.       RandomAccessFile var3;
  35.       try {
  36.          var3 = new RandomAccessFile(var0, var2);
  37.       } catch (IOException var5) {
  38.          throw new IOException(var1);
  39.       }
  40.  
  41.       try {
  42.          return var3.getFD();
  43.       } catch (IOException var4) {
  44.          throw new SecureFileException("Internal error");
  45.       }
  46.    }
  47.  
  48.    public SecureRandomAccessFile(String var1, String var2, Principal var3) throws IOException {
  49.       this(var1, var2, var3, 1);
  50.    }
  51.  
  52.    private SecureRandomAccessFile(String var1, String var2, Principal var3, int var4) throws IOException {
  53.       this(rethrow(SecureFile.getPrependedPath(SecureFile.getPrepend(var3, var4 + 1), var1), var1, var2), var2, PrivilegeManager.enableTarget(CheckLimitedFileAccess("UniversalFdRead")), PrivilegeManager.enableTarget(CheckLimitedFileAccess("UniversalFdWrite")));
  54.       this.prepend = SecureFile.getPrepend(var3, var4 + 1);
  55.       SecureFile.checkCanonicalPath(var1, this.prepend);
  56.       this.prin = var3;
  57.    }
  58.  
  59.    private SecureRandomAccessFile(FileDescriptor var1, String var2, Object var3, Object var4) {
  60.       super(var1, var2);
  61.    }
  62.  
  63.    public Principal getPrincipal() {
  64.       return this.prin;
  65.    }
  66. }
  67.