[jboss-cvs] JBossAS SVN: r80610 - in trunk: system/src/main/org/jboss/system/server and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Nov 6 14:15:09 EST 2008


Author: adrian at jboss.org
Date: 2008-11-06 14:15:09 -0500 (Thu, 06 Nov 2008)
New Revision: 80610

Added:
   trunk/server/src/etc/conf/default/java.policy
   trunk/server/src/etc/conf/default/security.xml
   trunk/system/src/main/org/jboss/system/server/security/
   trunk/system/src/main/org/jboss/system/server/security/SecurityPolicy.java
Log:
Experimental installation of security policy in the bootstrap

Added: trunk/server/src/etc/conf/default/java.policy
===================================================================
--- trunk/server/src/etc/conf/default/java.policy	                        (rev 0)
+++ trunk/server/src/etc/conf/default/java.policy	2008-11-06 19:15:09 UTC (rev 80610)
@@ -0,0 +1,4 @@
+grant {
+        // Allow everything for now
+        permission java.security.AllPermission;
+};

Added: trunk/server/src/etc/conf/default/security.xml
===================================================================
--- trunk/server/src/etc/conf/default/security.xml	                        (rev 0)
+++ trunk/server/src/etc/conf/default/security.xml	2008-11-06 19:15:09 UTC (rev 80610)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+   The JMX Subsystem
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <classloader><inject bean="security-classloader:0.0.0"/></classloader>
+
+   <classloader name="security-classloader" xmlns="urn:jboss:classloader:1.0" export-all="NON_EMPTY" import-all="true"/>
+
+   <!-- The legacy JMX kernel -->
+   <bean name="SecurityPolicy" class="org.jboss.system.server.security.SecurityPolicy">
+      <property name="securityManager"><javabean xmlns="urn:jboss:javabean:2.0" class="java.lang.SecurityManager"/></property>
+      <property name="policyURL">${jboss.server.config.url}/java.policy</property>
+   </bean>
+   
+</deployment>

Added: trunk/system/src/main/org/jboss/system/server/security/SecurityPolicy.java
===================================================================
--- trunk/system/src/main/org/jboss/system/server/security/SecurityPolicy.java	                        (rev 0)
+++ trunk/system/src/main/org/jboss/system/server/security/SecurityPolicy.java	2008-11-06 19:15:09 UTC (rev 80610)
@@ -0,0 +1,99 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.system.server.security;
+
+import java.net.URL;
+import java.security.Policy;
+
+import org.jboss.beans.metadata.api.annotations.Start;
+
+/**
+ * SecurityPolicy.
+ * 
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class SecurityPolicy
+{
+   /** Whether to install the security manager */
+   private SecurityManager securityManager;
+   
+   /** The policy url */
+   private URL policyURL;
+
+   /**
+    * Get the securityManager.
+    * 
+    * @return the securityManager.
+    */
+   public SecurityManager getSecurityManager()
+   {
+      return securityManager;
+   }
+
+   /**
+    * Set the securityManager.
+    * 
+    * @param securityManager the securityManager.
+    */
+   public void setSecurityManager(SecurityManager securityManager)
+   {
+      this.securityManager = securityManager;
+   }
+
+   /**
+    * Get the policyURL.
+    * 
+    * @return the policyURL.
+    */
+   public URL getPolicyURL()
+   {
+      return policyURL;
+   }
+
+   /**
+    * Set the policyURL.
+    * 
+    * @param policyURL the policyURL.
+    */
+   public void setPolicyURL(URL policyURL)
+   {
+      this.policyURL = policyURL;
+   }
+   
+   @Start
+   public void start()
+   {
+      if (policyURL != null)
+         System.setProperty("java.security.policy", policyURL.toExternalForm());
+      Policy.getPolicy().refresh();
+      
+      if (securityManager != null)
+         System.setSecurityManager(securityManager);
+   }
+   
+   public void stop()
+   {
+      if (securityManager != null)
+         System.setSecurityManager(null);
+   }
+}




More information about the jboss-cvs-commits mailing list