My application security runs great in Tomcat but when I run it in JBoss it
doesn't work.
I have deployed a DynamicLoginConfig MBean to specify the location of my custom
login-config.xml:
jboss-service.xml:
<server>
|
| <!-- JG:
| Added this mbean so that jboss will look first in META-INF for the
login config before looking in the config directory
| of the jboss root-->
| <mbean code="org.jboss.security.auth.login.DynamicLoginConfig"
| name="jboss:service=DynamicLoginConfig">
| <attribute
name="AuthConfig">META-INF/jboss-login-config.xml</attribute>
| <!-- The service which supports dynamic processing of login-config.xml
| configurations.
| -->
| <depends optional-attribute-name="LoginConfigService">
| jboss.security:service=XMLLoginConfig
| </depends>
| <!-- Optionally specify the security mgr service to use when
| this service is stopped to flush the auth caches of the domains
| registered by this service.
| -->
| <depends optional-attribute-name="SecurityManagerService">
| jboss.security:service=JaasSecurityManager
| </depends>
| </mbean>
| </server>
Where jboss-login-config.xml looks like this:
<policy>
|
| <application-policy name="CustomerAdmin">
| <authentication>
| <login-module
code="com.ftid.custadmin.security.HibernateLoginModule" flag="required">
| <module-option
name="policy">META-INF/ClientAdmin.policy</module-option>
| </login-module>
| </authentication>
| </application-policy>
|
| </policy>
This works great, when logging into my application on JBoss my custom
HibernateLoginModule class is called. However, I have a JAAS Policy file that
looks like this..
|
| grant Principal com.ftid.custadmin.security.ClientAdminPrincipal
"view_customer" {
| permission com.ftid.custadmin.security.ViewIdPermission
"/client/clientsView.*";
| permission com.ftid.custadmin.security.ViewIdPermission
"/client/clientLandingPage.*";
| };
|
| grant Principal com.ftid.custadmin.security.ClientAdminPrincipal
"view_update_customer" {
| permission com.ftid.custadmin.security.ViewIdPermission
"/client/clientEdit.*";
| };
|
| etc.
|
How do I get the JBoss SecurityManager to read this JAAS policy file??
In tomcat I simply had to do the following which works very well:
| System.setProperty("java.security.auth.login.config",
sc.getRealPath("/WEB-INF/jaas.properties"));
| System.setProperty("java.security.auth.policy",
sc.getRealPath("/WEB-INF/ClientAdmin.policy"));
| SecurityManager sm = System.getSecurityManager();
| .
| .
| .
| Permission perm = new ViewIdPermission("/client/clientEdit");
| sm.checkPermission(perm);
|
When this code runs in JBoss an AccessControlException is thrown. It seems
that JBoss creates it's own SecurityManager that hasn't been set up using my
Policy file.
HOW DO I GET JBOSS TO READ MY POLICY FILE ?? Please Help!!
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4111987#4111987
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4111987
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user