Salman9
Salman9

Reputation: 265

Wildfly Security Manager : Permission failed for org.jboss.vfs.VirtualFilePermission

I have My JBOSS Wildfly set up. I have a problem when accessing a certain part in my code that I get an error with the message as bellow:

Caused by: java.security.AccessControlException: WFSM000001: Permission check failed for ("org.jboss.vfs.VirtualFilePermission

I have my standalone.xml config with permissions as bellow:

<subsystem xmlns="urn:jboss:domain:security-manager:1.0">
            <deployment-permissions>
                <minimum-set>
                    <permission class="java.security.AllPermission"/>
                    <permission class="org.jboss.naming.JndiPermission"/>
                    <permission class="java.lang.RuntimePermission" name="createClassLoader"/>
                    <permission class="java.lang.RuntimePermission" name="getClassLoader"/>
                    <permission class="java.io.FilePermission" name="/tmp" actions="read,write"/>
                    <permission class="java.io.FilePermission" name="/opt" actions="read"/>
                </minimum-set>
                <maximum-set>
                    <permission class="java.security.AllPermission"/>
                </maximum-set>
            </deployment-permissions>
        </subsystem>

Can anyone help to figure out what is missing in the config? or why am I receiving this error?

Thanks.

Upvotes: 2

Views: 1845

Answers (2)

jencoston
jencoston

Reputation: 1362

I realize this is an old question, but in case anyone else stumbles on this question, you need to add Virtual File Permissions to your minimum-set:

<permission class="org.jboss.vfs.VirtualFilePermission" name="&lt;&lt;ALL FILES&gt;&gt;" actions="read"/> 

Which when added to your permissions would look like this:

<subsystem xmlns="urn:jboss:domain:security-manager:1.0">
            <deployment-permissions>
                <minimum-set>
                    <permission class="java.security.AllPermission"/>
                    <permission class="org.jboss.naming.JndiPermission"/>
                    <permission class="java.lang.RuntimePermission" name="createClassLoader"/>
                    <permission class="java.lang.RuntimePermission" name="getClassLoader"/>
                    <permission class="java.io.FilePermission" name="/tmp" actions="read,write"/>
                    <permission class="java.io.FilePermission" name="/opt" actions="read"/>
                    <permission class="org.jboss.vfs.VirtualFilePermission" name="&lt;&lt;ALL FILES&gt;&gt;" actions="read"/>   
                </minimum-set>
                <maximum-set>
                    <permission class="java.security.AllPermission"/>
                </maximum-set>
            </deployment-permissions>
        </subsystem>

Upvotes: 1

Shing Lam
Shing Lam

Reputation: 81

You need . To see what the "name" and "action" are, turn on the java.security.debug flag by passing "-Djava.security.debug=access,failure,policy" to the JVM in the startup script. The log will be very verbose. Hope this helps.

Upvotes: 0

Related Questions