aboutsummaryrefslogtreecommitdiff
path: root/libraries/common-0/ProxySecurityManager.java
blob: 4669addac162dc096448c316c15af29b2257b86b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package cbt.reflect;

import java.security.*;
import java.io.FileDescriptor;
import java.net.InetAddress;

/*
SecurityManager proxy that forwards all calls to the provided target if != null.
Useful to replace a previously installed SecurityManager, overriding some methods
but forwarding the rest.
*/
class ProxySecurityManager extends SecurityManager {
  private SecurityManager target;

  protected ProxySecurityManager(SecurityManager target) {
    this.target = target;
  }

  public Object getSecurityContext() {
    if (target != null) return target.getSecurityContext();
    else return super.getSecurityContext();
  }

  public void checkPermission(Permission perm) {
    if (target != null) target.checkPermission(perm);
  }

  public void checkPermission(Permission perm, Object context) {
    if (target != null) target.checkPermission(perm, context);
  }

  public void checkCreateClassLoader() {
    if (target != null) target.checkCreateClassLoader();
  }

  public void checkAccess(Thread t) {
    if (target != null) target.checkAccess(t);
  }

  public void checkAccess(ThreadGroup g) {
    if (target != null) target.checkAccess(g);
  }

  public void checkExit(int status) {
    if (target != null) target.checkExit(status);
  }

  public void checkExec(String cmd) {
    if (target != null) target.checkExec(cmd);
  }

  public void checkLink(String lib) {
    if (target != null) target.checkLink(lib);
  }

  /*
  public void checkRead(FileDescriptor fd) {
    if (target != null) target.checkRead(fd);
  }

  public void checkRead(String file) {
    if (target != null) target.checkRead(file);
  }

  public void checkRead(String file, Object context) {
    if (target != null) target.checkRead(file, context);
  }
  */

  public void checkWrite(FileDescriptor fd) {
    if (target != null) target.checkWrite(fd);
  }

  public void checkWrite(String file) {
    if (target != null) target.checkWrite(file);
  }

  public void checkDelete(String file) {
    if (target != null) target.checkDelete(file);
  }

  public void checkConnect(String host, int port) {
    if (target != null) target.checkConnect(host, port);
  }

  public void checkConnect(String host, int port, Object context) {
    if (target != null) target.checkConnect(host, port, context);
  }

  public void checkListen(int port) {
    if (target != null) target.checkListen(port);
  }

  public void checkAccept(String host, int port) {
    if (target != null) target.checkAccept(host, port);
  }

  public void checkMulticast(InetAddress maddr) {
    if (target != null) target.checkMulticast(maddr);
  }

  public void checkPropertiesAccess() {
    if (target != null) target.checkPropertiesAccess();
  }

  public void checkPropertyAccess(String key) {
    if (target != null) target.checkPropertyAccess(key);
  }

  public void checkPrintJobAccess() {
    if (target != null) target.checkPrintJobAccess();
  }

  public void checkPackageAccess(String pkg) {
    if (target != null) target.checkPackageAccess(pkg);
  }

  public void checkPackageDefinition(String pkg) {
    if (target != null) target.checkPackageDefinition(pkg);
  }

  public void checkSetFactory() {
    if (target != null) target.checkSetFactory();
  }

  public ThreadGroup getThreadGroup() {
    if (target != null) return target.getThreadGroup();
    else return super.getThreadGroup();
  }
}