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