Zamples, Inc. logo
 Home   Search   Solutions   My Zamples   FAQ   News   Contact 
Zamples ID:
Password:
   
0 anonymous users;
41 users logged in.

Live Samples
Live APIs

HTML or JSP Frag
Java Servlet Frag
HTML & Applet
Bash
C# (Mono)
C++ (gcc)
Groovy
Haskell (Hugs98)
J2SE 1.4 Class
J2SE 1.4 Fragment
J2SE 5.0 Class
J2SE 5.0 Fragment
J2SE 6.0 Class
J2SE 6.0 Fragment
Perl
Python
Ruby
 

Security Manager Program Fragments

Zamples has a Security Manager that restricts access to various computing resources.  The examples on this page exercise the security manager.  The security manager is configurable.

File Access

Security Granted

String file = "playpen/file.txt";
try {
    File f = new File(file);
    out.println(file + " does " + ((f.exists()) ? "" : "not ") + "exist");
} catch (SecurityException e) {
    out.println("Cannot check if " + file + " exists.");
}

Typical output

playpen/file.txt does not exist

Security Denied

String file = "/file.txt";
try {
    File f = new File(file);
    out.println(file + " does " + ((f.exists()) ? "" : "not ") + "exist");
} catch (SecurityException e) {
    out.println("Cannot check if " + file + " exists.");
}

Typical output

Cannot check if /file.txt exists.


File roots[] = File.listRoots();
if (roots==null || roots.length==0) {
   out.println("No roots found (security manager probably suppressed them)");
} else {
   for (int i = 0; i < roots.length; i++)
      out.println(roots[i].getAbsolutePath());
   java.io.File files[] = roots[0].listFiles();
   for (int i = 0; i < files.length; i++)
      out.println(files[i].getAbsolutePath());
}

Typical output

No roots found (security manager probably suppressed them)

Security Manager Check

out.println(System.getSecurityManager());

java.io.File root = new java.io.File("/");
String[] filesAndDirs = root.list();
for (int i=0; i<filesAndDirs.length; i++) {
  out.println( filesAndDirs[i] );
}

Typical Output

java.lang.SecurityManager@1127b52

java.security.AccessControlException: access denied (java.io.FilePermission / read)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
    at java.security.AccessController.checkPermission(AccessController.java:401)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
    at java.lang.SecurityManager.checkRead(SecurityManager.java:863)
    at java.io.File.list(File.java:913)
    at org.apache.jsp._82D6A58DD5B1D92D6EEEBAC16017E541_jsp._jspService(_82D6A58DD5B1D92D6EEEBAC16017E541_jsp.java:59)

Memory Check

Runtime runtime = Runtime.getRuntime();
long free = runtime.freeMemory(); 
long total = runtime.totalMemory(); 

System.out.println("Available memory is " + free);
System.out.println("Total for the JVM is " + total);

Typical Output

Available memory is 3594576
Total for the JVM is 17072128

Gunning For Passwords

No, we aren't crazy.  Zamples has special provisions to guard against mischief.

Java Version

String file = "/etc/passwd";
try {
   BufferedReader d = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
   String line;
   while((line=d.readLine())!=null)
      System.out.println(line);
} catch (Exception e) {
   System.out.println(e.getMessage());
}

Typical output

root:x:0:0:root:/root:/bin/bash

Python Version

import pprint
f = file('/etc/passwd')
pprint.pprint(f.readlines())

File Walker

<%! public void iterate(File file, JspWriter out) throws IOException {
  String[] list = file.list();
  StringTokenizer st =  new StringTokenizer(file.getPath(), "/");
  String einr = "";
  for (int i=0; i<st.countTokens(); i++) 
     einr += " ";
  for (int i=0; i<list.length; i++) {
    out.println(einr + list[i]);
    File nextFile = new File(list[i]);
    if (nextFile.isDirectory()) 
      iterate(nextFile, out);
  }
}%>
<% iterate(new File("/"), out); %>

Typical output

java.security.AccessControlException: access denied (java.io.FilePermission / read)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
    at java.security.AccessController.checkPermission(AccessController.java:401)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
    at java.lang.SecurityManager.checkRead(SecurityManager.java:863)
    at java.io.File.list(File.java:913)
    at org.apache.jsp._82D6A58DD5B1D92D6EEEBAC16017E541_jsp.iterate(_82D6A58DD5B1D92D6EEEBAC16017E541_jsp.java:15)
    at org.apache.jsp._82D6A58DD5B1D92D6EEEBAC16017E541_jsp._jspService(_82D6A58DD5B1D92D6EEEBAC16017E541_jsp.java:73)

Add New Code Samples Here

If you have code samples that don't fit into any of the topics above which you would like to contribute, please put them here.  We'll sort them out into their own sections as appropriate later.

0 Quality Tested Examples 0 Problems & Suggestions 0 Closed Issues
to add a new posting or reply to an existing posting.