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