...
Code Block | ||
---|---|---|
| ||
package trusted; import untrusted.RetValue; public class MixMatch { private void privilegedMethod() throws IOException { try { FileInputStream fis = (FileInputStream) AccessController.doPrivileged( new PrivilegedExceptionAction() { public FileInputStream run() throws FileNotFoundException { return new FileInputStream(""file.txt""); } } ); RetValue rt = new RetValue(); if(rt.getValue() == 1) { // do something with sensitive file } } catch (PrivilegedActionException e) { // forward to handler and log } finally { fis.close(); } } public static void main(String[] args) throws IOException { MixMatch mm = new MixMatch(); mm.privilegedMethod(); } } package untrusted; class RetValue { public int getValue() { return 1; } } |
...