blob: 462db025b51ed728ba48fdb86c3ccd011fdb661d (
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
|
/* NSC -- new Scala compiler
* Copyright 2005-2012 LAMP/EPFL
* @author Paul Phillips
*/
package scala.tools.partest
import java.security._
import java.util._
abstract class SecurityTest extends App {
def throwIt(x: Any) = throw new AccessControlException("" + x)
def readPerm(p: PropertyPermission) = p.getActions contains "read"
def writePerm(p: PropertyPermission) = p.getActions contains "write"
def propertyCheck(p: PropertyPermission): Unit = throwIt(p)
def check(perm: Permission): Unit = perm match {
case p: PropertyPermission => propertyCheck(p)
case _ => ()
}
lazy val sm = new SecurityManager {
// these two are the choke points for all permissions checks
override def checkPermission(perm: Permission): Unit = check(perm)
override def checkPermission(perm: Permission, context: Object): Unit = check(perm)
}
def securityOn(): Boolean = {
try { System.setSecurityManager(sm) ; true }
catch { case _: SecurityException => false }
}
}
|