<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    AS8:  JBoss Security Manager Implementation Plan
</h3>
<span style="margin-bottom: 10px;">
    modified by <a href="https://community.jboss.org/people/dmlloyd">David Lloyd</a> in <i>JBoss AS 7 Development</i> - <a href="https://community.jboss.org/docs/DOC-48386">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>This wiki article will propose an implementation plan for the security manager related changes for JBoss AS8.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2>Background</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span>Please follow </span><a class="jive-link-wiki-small" href="https://community.jboss.org/docs/DOC-48383" target="_blank">https://community.jboss.org/wiki/AS8JBossSecurityManagerDiscussion</a><span>&#160;&#160; for some background information.</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Goal is to minimize the global policy file <em>historic</em> approach and adapt the Java Security Manager infrastructure in AS8 to a more modular approach.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2>Approach</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><ul><li style="text-align: start;">We will have a security manager subsystem to define the global permission collection that modules will inherit by default.&#160; </li><li style="text-align: start;">module.xml can define the permission collection that governs the module.&#160; This is what the ModuleClassLoader will return to the security manager when asked for permission collection.</li><li style="text-align: start;">EE deployments can do META-INF/permissions.xml (as per EE7).&#160;&#160; The deployment permissions need to be merged into the module level permissions.</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 style="text-align: start;"></h2><h2 style="text-align: start;">Security Manager and Policy Implementation</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">The JVM can run under a Java Security Manager via two options:</p><ul><li style="text-align: start;">Pass&#160; -Djava.security.manager as command option</li><li style="text-align: start;">Programmatically, call&#160;&#160;&#160; System.setSecurityManager(securityManager)</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">So we have two options to start the security manager in AS8.&#160; (<em>I personally like the programmatic option that will let the JVM and JBoss Modules system to start up before the security manager is put into operation</em>).</p><h3 style="text-align: start;">Command Line Option</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">When we use the command line option,&#160; the default security manager implementation (that uses Sun PolicyFile implementation)&#160;&#160; will use the java.policy file from jre/lib/security folder of the JVM to construct the permissions that the JVM will have in starting up.&#160; This takes care of the JVM starting up.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">We will need to bootstrap the JBoss Modules system.&#160; Now we have to think about providing the permissions for the jboss-modules.jar&#160; </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">The easiest way to achieve this is to add an entry into the java.policy file.&#160;&#160; or&#160; have a single entry in a policy file within the AS8 folders and mandate users not add/delete anything from this file.&#160;&#160; This will get the JBoss Modules system starting.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">Once the module system is started,&#160; we will use the programmatic stuff below.</p><h3 style="text-align: start;">Command Line Option #2</h3><p>JBoss Modules has a special bootstrap option for security manager startup.&#160; Instead of passing -Djava.security.manager to the JVM, you run JBoss Modules with the -secmgr flag.&#160; This loads up a special policy that grants JBoss Modules AllPermission, but otherwise inherits the Policy defined by the JVM (or the application, if it has one).&#160; In this way, JBoss AS can be started up under a security manager without any other special setup (in particular, without a JVM-specific policy file).&#160; Requires at least 1.2.0.CR2 for proper operation.</p><h3 style="text-align: start;">Programmatic Option</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>There will be a security manager subsystem defined in the domain model.&#160;&#160; It will have a flag called <strong><em>enable</em></strong>&#160; which by default will be <em>false</em>.&#160;&#160; If the user configures the <em>enable</em> flag to true,&#160; the program will call <em>System.setSecurityManager()</em>,&#160; if&#160; <em>System.getSecurityManager() == null</em>.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The security manager subsystem can define the permission block for use by default by the module class loader.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><ul><li style="text-align: start;">We need to come up with a schema for the permission collection that can be used in the security-manager subsystem. We can use some of the concepts used in the policy file but make it usable.</li><li style="text-align: start;">The permission collection generated in the SM subsystem needs to be available to the module classloader if explicit permission collection not defined in module.xml for the module in question.</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">To summarize the options, the following systems will need to be configured with permissions:</p><p style="text-align: start;">a) JVM Bootstrap</p><p style="text-align: start;">b) JBoss Modules Bootstrap</p><p style="text-align: start;">c) JBoss Application Server</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 style="text-align: start;">Module Permission Collection</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">module.xml will have a permission collection block that mirrors what is defined in the security-manager subsystem of the domain model. This is what the module classloader will pick up. If left undefined, the global permission collection from the security-manager domain model will be adopted.</p><h2 style="text-align: start;">Deployment Permission Collection</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="text-align: start;">EE7 deployments can define a permission collection via META-INF/permissions.xml&#160;&#160; We will need to merge/adapt/convert this into a module level permission collection at the class loader for the deployment.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 style="text-align: start;">References</h2><p style="text-align: start;"><a class="jive-link-wiki-small" href="https://community.jboss.org/docs/DOC-17431" target="_blank">https://community.jboss.org/wiki/JBossAS7SecurityRunningUnderAJavaSecurityManager</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 style="text-align: start;"></h2><h2 style="text-align: start;">Chat Dumps</h2><h3 style="text-align: start;"></h3><h3 style="text-align: start;">21 Feb 2013</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:27:03 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: working on the wiki article that outlines a plan.&#160; I am unsure yet that we need a policy implementation.</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:27:16 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: but look at my article in about an hour.&#160; then we can talk.<strong> <br/></strong></p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:31:39 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>okay.&#160; I came up with a few more ideas before I fell asleep last night<strong> <br/></strong></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:42:28 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: saw your posts last night. I did make a post close to midnight.</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:42:30 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span><a class="jive-link-wiki-small" href="https://community.jboss.org/docs/DOC-48386">https://community.jboss.org/wiki/AS8JBossSecurityManagerImplementationPlan</a></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:42:40 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: it is half written.&#160; adding details now.<strong> <br/></strong></p><p><span style="color: #af7f00; font-size: 10pt; font-weight: normal;">(09:44:23 AM) </span><span style="font-weight: bold; color: #af7f00;">dmlloyd: </span>asaldhan, I figured out that in JBoss Modules I can wrap the system Policy with one that grants modules itself AllPermission and that gets around the boot issue</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:44:41 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>so basically if you pass -secmgr to JBoss Modules at boot, you're fully secured</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:44:56 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>I know that doesn't answer any of the other questions though</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:45:16 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>but at least it's one less headache <span> :) </span></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:45:25 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: I like the programmatic option wherein JVM and Modules bootstrapped before SM kicks in</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:45:38 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: unless the admin is paranoid, then he can go the command line way</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:46:12 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>the problem is that it comes in so late</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:46:50 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>one thing to consider though is that we have a few places where we want to administratively configure stuff that needs to take effect at or near JVM startup</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:47:26 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>so secmgr is not unique in that regard</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:48:00 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>so it's possible that even with the command line switch, the subsystem can still control it<strong> <br/></strong></p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:48:43 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>now, all that said, I think the programmatic option is still viable</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:49:10 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: from admin perspective, they usually trust JVM and core JBoss infrastructure.</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:49:27 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: it is the applications that get deployed on the runtime that can go berseck</p><p><span style="color: #062585; font-size: 10pt; font-weight: normal;">(09:49:49 AM) </span><span style="font-weight: bold; color: #062585;">***asaldhan </span>has updated the article<strong> <br/></strong></p><p><span style="color: #af7f00; font-size: 10pt; font-weight: normal;">(09:51:05 AM) </span><span style="font-weight: bold; color: #af7f00;">dmlloyd: </span>asaldhan: that is true</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:51:22 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>tbh all of my changes should be able to support programmatic SM enablement later on</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:52:16 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: in my view 95% of usecases will go by programmatic approach.&#160; for the paranoid, the cmd line option can go</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:52:27 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>we could cut down significantly on startup time this way</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:52:41 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: right.</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:52:55 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: what I feel is the flag&#160;&#160; "enable=true"&#160; which kicks in the SM</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:53:00 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: usability will be cool</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:53:24 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: by default, the permissions should be DenyAll&#160; as long as all the modules shipped in AS8 have allperm in module.xml</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:53:32 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>that flag should be "enable=(true|false|inherit)" though - otherwise if they set it on the command line and it's set to "false" then the SM will turn off once the subsystem kicks in <span> :) </span></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:53:37 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: that way, admin has to configure his apps and custom modules</p><p><span style="color: #af7f00; font-size: 10pt; font-weight: normal;">(09:53:49 AM) </span><span style="font-weight: bold; color: #af7f00;">dmlloyd: </span>asaldhan, the EE spec gives a minimum permission set actually</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:53:56 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: right</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:54:25 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>I wonder if we should automatically set those up or if the EE perm set should just be the default<strong> <br/></strong></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:57:42 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: what I am wondering is by default,&#160; there should be no SM.&#160; Just a Policy implementation for modules&#160; that does policy.implies(permission) check for sensitive operations</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:58:07 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: this is more of a JBoss modules concept that will be extended to the AS8 server</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:58:46 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: there really is no major need for SM to be ON vmwide</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:59:17 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>most things which check permissions will skip the check if there's no SM</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:59:33 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>check out these changes though:</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:59:35 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span><a class="jive-link-external-small" href="http://github.com/jbossas/jboss-modules/compare/c217927...a6345ca">http://github.com/jbossas/jboss-modules/compare/c217927...a6345ca</a></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:59:42 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: will check the changes. </p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(09:59:44 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: BUT</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(09:59:45 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>these should allow a SM to be turned on later</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:00:04 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: it is the modules codebase that can do policy.implies for many of its operations.</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:00:23 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>it could, but to what purpose?<strong> <br/></strong></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:01:11 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: your changes was what I was mentioning about the policy</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:02:33 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: you need the SM for policing n/w operations, socket ops, IO etc done by the JVM and application code.&#160;&#160;&#160;&#160;&#160;&#160; But the modules can police some of the classloader checks using modulepolicy when a SM is absent</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:02:35 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>ah right, so we're saying the same thing</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:02:48 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>okay, that's true</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:03:17 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>but I don't think it's too necessary as there aren't too many actual privileged operations like that in modules really</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:03:35 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: ModuleCL operations maybe?</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:03:48 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: public private api etc?</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:03:55 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: I am just talking loudly</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:04:01 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>thinking</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:04:02 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>I use access control for most things</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:04:12 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>java language access control that is</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:04:29 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>AccessControlContext?</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:04:34 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>accesscontroller.doPriv?</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:04:58 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>no, private/protected/etc.<strong> <br/></strong></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:05:34 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>yeah&#160; but what about cases where in methods are declared public&#160; but they cannot be accessed from outside the module.&#160; Like app classes should not call these.&#160; There is no SM installed.<strong> <br/></strong></p><p><span style="color: #062585; font-size: 10pt; font-weight: normal;">(10:06:12 AM) </span><span style="font-weight: bold; color: #062585;">***asaldhan </span>is looking at a modular system</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:07:17 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>I use visibility restriction for those cases</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:12:27 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: one change in your thought.&#160;&#160; SM subsystem enable=false&#160; does not disable SM if bootstrapped via cmd line.&#160; It only does System.setSM if enable=true</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:12:58 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>how can users turn it off then?</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:19:56 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>realistically enabling SM from the cmdline isn't that different from enabling it programmatically</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:19:59 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>it just happens sooner</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:20:24 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: we will only ship with programmatic option</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:20:39 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: we may have an article for how to do with cmd line option for paranoid admins</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:21:05 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: the cmd line folks will be less &lt;1% of total users.</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:21:29 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>okay so perhaps we can just make it a doc issue</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:21:48 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: management of the SM now becomes part of domain management</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:21:52 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>if you turn on SM on the command line, you must remember to have it on in your config as well</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:21:58 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: rather than mucking with cmd files</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:22:14 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: cmd line turn on will have the steps in the document.</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:22:45 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>one other concern is that we have to make sure that our service dependencies do not allow deployments to start up before the sec mgr subsystem kicks in<strong> <br/></strong></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:23:26 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd:&#160; how quickly can the sec mgr subsystem kick in?&#160; will the service dependency resolution happen before that?<strong> <br/></strong></p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:24:53 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: the flow should be (JVM)---&gt; (Modules Bootstrap)----&gt;SM ----&gt; everything else</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:28:09 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>all subsystems will begin initializing at the same time</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:28:39 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>deployments should not start up until all the subsystems do, but that's something definitely to verify</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:28:52 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: should the SM subsystem be part of the modules bootstrap?</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:29:20 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>if we do that we'll break all kinds of things - I don't think we want to open that door just yet</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:29:29 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>in AS 9 we may have some better options though... </p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:35:41 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>one note for the future... the sec mgr subsystem is clearly something that is not applicable to embedded servers</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:36:05 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>I think at some point we'll have to go through and specify what subsystems apply to embedded, jvm, or both<strong> <br/></strong></p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:36:18 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>I can easily imagine special embedded-specific subsystems</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:37:35 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>well *parts* of the sec mgr subsys anyway</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:37:56 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>for example in embedded you can't be installing SMs, but you can for example assign permissions to deployment modules</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span style="color: #204a87; font-size: 10pt; font-weight: normal;">(10:44:53 AM) </span><span style="font-weight: bold; color: #204a87;">asaldhan: </span>dmlloyd: The module system can definitely be doing a lot of Policy.implies checks if it desires. <span> :) </span><strong> <br/></strong></p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:49:18 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>okay, so I think we're pretty well sorted out on that score</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:57:15 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>the last discussion for SM is, what do we need to configure in the domain, and how will it look</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(10:57:26 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>use cases -&gt; requirements -&gt; design</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(11:27:42 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>I guess the questions are:</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(11:28:04 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>1) do we configure a maximal permission set globally for all deployments?</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(11:28:12 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>2) do we do the same for deployments based on some pattern?</p><p><span style="color: #8633b2; font-size: 10pt; font-weight: normal;">(11:28:51 AM) </span><span style="font-weight: normal; color: #8633b2;">dmlloyd: </span>3) what about extensions/filesystem JARs?</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Comment by <a href="https://community.jboss.org/docs/DOC-48386">going to Community</a></p>

        <p style="margin: 0;">Create a new document in JBoss AS 7 Development at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=102&containerType=14&container=2225">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>