home *** CD-ROM | disk | FTP | other *** search
- package netscape.secfile;
-
- import java.io.FileDescriptor;
- import java.io.IOException;
- import java.io.RandomAccessFile;
- import netscape.security.Principal;
- import netscape.security.PrivilegeManager;
-
- public class SecureRandomAccessFile extends RandomAccessFile {
- private String prepend;
- private Principal prin;
-
- public SecureRandomAccessFile(String var1, String var2) throws IOException {
- this(var1, var2, SecureFile.getClassPrincipal(1), 1);
- }
-
- public SecureRandomAccessFile(SecureFile var1, String var2) throws IOException {
- this(var1.getPath(), var2, var1.getPrincipal(), 1);
- }
-
- public SecureRandomAccessFile(FileDescriptor var1, String var2) {
- this(var1, var2, PrivilegeManager.enableTarget("UniversalFdRead"), PrivilegeManager.enableTarget("UniversalFdWrite"));
- this.prin = null;
- }
-
- private static FileDescriptor rethrow(String var0, String var1, String var2) throws IOException {
- PrivilegeManager.enableTarget("UniversalFileAccess");
-
- RandomAccessFile var3;
- try {
- var3 = new RandomAccessFile(var0, var2);
- } catch (IOException var5) {
- throw new IOException(var1);
- }
-
- try {
- return var3.getFD();
- } catch (IOException var4) {
- throw new SecureFileException("Internal error");
- }
- }
-
- public SecureRandomAccessFile(String var1, String var2, Principal var3) throws IOException {
- this(var1, var2, var3, 1);
- }
-
- private SecureRandomAccessFile(String var1, String var2, Principal var3, int var4) throws IOException {
- this(rethrow(SecureFile.getPrependedPath(SecureFile.getPrepend(var3, var4 + 1), var1), var1, var2), var2, PrivilegeManager.enableTarget("UniversalFdRead"), PrivilegeManager.enableTarget("UniversalFdWrite"));
- this.prepend = SecureFile.getPrepend(var3, var4 + 1);
- SecureFile.checkCanonicalPath(var1, this.prepend);
- this.prin = var3;
- }
-
- private SecureRandomAccessFile(FileDescriptor var1, String var2, Object var3, Object var4) {
- super(var1, var2);
- }
-
- public Principal getPrincipal() {
- return this.prin;
- }
- }
-