<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSecurity%2FSecurityManager</id>
		<title>Java Tutorial/Security/SecurityManager - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSecurity%2FSecurityManager"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Security/SecurityManager&amp;action=history"/>
		<updated>2026-04-18T21:39:00Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Security/SecurityManager&amp;diff=4300&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Security/SecurityManager&amp;diff=4300&amp;oldid=prev"/>
				<updated>2010-06-01T05:01:27Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:01, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Security/SecurityManager&amp;diff=4299&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Security/SecurityManager&amp;diff=4299&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Define your own security manager ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class CustomSecurityManager extends SecurityManager {&lt;br /&gt;
  public CustomSecurityManager() {&lt;br /&gt;
    super();&lt;br /&gt;
  }&lt;br /&gt;
  public void checkRead(String fileName) {&lt;br /&gt;
    if (fileName != null &amp;amp;&amp;amp; fileName.endsWith(&amp;quot;.java&amp;quot;)) {&lt;br /&gt;
      throw new SecurityException(&amp;quot; You are not allowed to read &amp;quot; + &amp;quot; file names ending with .java&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    super.checkRead(fileName);&lt;br /&gt;
  }&lt;br /&gt;
  public void checkWrite(String fileName) {&lt;br /&gt;
    if (fileName != null &amp;amp;&amp;amp; fileName.endsWith(&amp;quot;.java&amp;quot;)) {&lt;br /&gt;
      throw new SecurityException(&amp;quot; You are not allowed to write &amp;quot;&lt;br /&gt;
          + &amp;quot; file names ending with .java&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    super.checkWrite(fileName);&lt;br /&gt;
  }&lt;br /&gt;
  public void checkDelete(String fileName) {&lt;br /&gt;
    if (fileName != null &amp;amp;&amp;amp; fileName.endsWith(&amp;quot;.java&amp;quot;)) {&lt;br /&gt;
      throw new SecurityException(&amp;quot; You are not allowed to delete &amp;quot;&lt;br /&gt;
          + &amp;quot; file names ending with .java&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    super.checkDelete(fileName);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main() {&lt;br /&gt;
    System.setSecurityManager(new CustomSecurityManager());&lt;br /&gt;
    SecurityManager secMgr = System.getSecurityManager();&lt;br /&gt;
    if (secMgr != null) {&lt;br /&gt;
      secMgr.checkRead(&amp;quot;fileName&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Enabling the Security Manager ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    System.setProperty(&amp;quot;java.version&amp;quot;, &amp;quot;data&amp;quot;);&lt;br /&gt;
    try {&lt;br /&gt;
      SecurityManager sm = new SecurityManager();&lt;br /&gt;
      System.setSecurityManager(sm);&lt;br /&gt;
    } catch (SecurityException se) {&lt;br /&gt;
      se.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    // no longer possible; an AccessControlException is thrown&lt;br /&gt;
    System.setProperty(&amp;quot;java.version&amp;quot;, &amp;quot;malicious data&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*Exception in thread &amp;quot;main&amp;quot; java.security.AccessControlException: access denied (java.util.PropertyPermission java.version write)&lt;br /&gt;
  at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)&lt;br /&gt;
  at java.security.AccessController.checkPermission(AccessController.java:546)&lt;br /&gt;
  at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)&lt;br /&gt;
  at java.lang.System.setProperty(System.java:727)&lt;br /&gt;
  at Main.main(Main.java:13)&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  extends SecurityManager ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws IOException {&lt;br /&gt;
    System.setSecurityManager(new MySecurityManager());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MySecurityManager extends SecurityManager {&lt;br /&gt;
  public void checkRead(String file) {&lt;br /&gt;
    if (!(file.endsWith(&amp;quot;.txt&amp;quot;)) &amp;amp;&amp;amp; !(file.endsWith(&amp;quot;.java&amp;quot;)) &amp;amp;&amp;amp; !(file.endsWith(&amp;quot;.class&amp;quot;))&lt;br /&gt;
        &amp;amp;&amp;amp; !(file.startsWith(&amp;quot;C:\\&amp;quot;))) {&lt;br /&gt;
      throw new SecurityException(&amp;quot;No Read Permission for : &amp;quot; + file);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Listing All Permissions Granted to Classes Loaded from a URL or Directory ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.security.CodeSource;&lt;br /&gt;
import java.security.Permission;&lt;br /&gt;
import java.security.PermissionCollection;&lt;br /&gt;
import java.security.Policy;&lt;br /&gt;
import java.security.cert.Certificate;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    SecurityManager sm = new SecurityManager();&lt;br /&gt;
    System.setSecurityManager(sm);&lt;br /&gt;
    URL codebase = new URL(&amp;quot;http://java.sun.ru/&amp;quot;);&lt;br /&gt;
    //codebase = new File(&amp;quot;c:\\java\\&amp;quot;).toURI().toURL();&lt;br /&gt;
    //codebase = new File(System.getProperty(&amp;quot;user.home&amp;quot;)).toURI().toURL();&lt;br /&gt;
    CodeSource cs = new CodeSource(codebase, (Certificate[])null);&lt;br /&gt;
    PermissionCollection pcoll = Policy.getPolicy().getPermissions(cs);&lt;br /&gt;
    Enumeration e = pcoll.elements();&lt;br /&gt;
    for (; e.hasMoreElements();) {&lt;br /&gt;
      Permission p = (Permission) e.nextElement();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  To ignore the policies in the java.security file, and use the specified policy, use &amp;quot;==&amp;quot; instead of &amp;quot;=&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
java -Djava.security.manager -Djava.security.policy==someURL MyApp&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  To specify an additional policy file, set the java.security.policy system property at the command line: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
c:\java -Djava.security.manager -Djava.security.policy=someURL MyApp&lt;br /&gt;
c:\appletviewer -J-Djava.security.policy=someURL HTMLfile&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use SecurityManager to check AWT permission and file permission ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.AWTPermission;&lt;br /&gt;
import java.io.FilePermission;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    SecurityManager sm = System.getSecurityManager();&lt;br /&gt;
    if (sm != null) {&lt;br /&gt;
      FilePermission fp = new FilePermission(&amp;quot;c:\\autoexec.bat&amp;quot;, &amp;quot;read&amp;quot;);&lt;br /&gt;
      sm.checkPermission(fp);&lt;br /&gt;
    }&lt;br /&gt;
    if (sm != null) {&lt;br /&gt;
      AWTPermission ap = new AWTPermission(&amp;quot;accessClipboard&amp;quot;);&lt;br /&gt;
      sm.checkPermission(ap);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;Has AWTPermission to access AWT Clipboard&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>