On Oct 30, 2008, at 3:32 AM, johnxmas wrote:

Hi,

I'm moving applications from Tomcat to Geronimo 2.1.3

One of these apps had security constraints. I read the documentation but, honestly, I didn't understand how I can achieve the same under Geronimo

Any help would be appreciated

Jean-Noël

Here is the tomcat configuration

- tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
 <role rolename="tomcat"/>
 <role rolename="role1"/>
 <role rolename="manager"/>
 <role rolename="admin"/>
 <role rolename="spadmin"/>
 <user username="tomcat" password="tomcat" roles="tomcat"/>
 <user username="both" password="tomcat" roles="tomcat,role1"/>
 <user username="role1" password="tomcat" roles="role1"/>
<user username="scort" password="scort" roles="manager,admin,spadmin"/>
</tomcat-users>

- the app web.xml had the following entries

  <security-constraint>
     <web-resource-collection>
        <web-resource-name>Protected Area</web-resource-name>
         <!-- Define the context-relative URL(s) to be protected -->
        <url-pattern>/main</url-pattern>
        <url-pattern>/jsp/customize.jsp</url-pattern>
        <url-pattern>/jsp/editconnspec.jsp</url-pattern>
        <url-pattern>/jsp/manageconnspec.jsp</url-pattern>
        <url-pattern>/admin/config/*</url-pattern>
        <url-pattern>/CreateConnection.srv</url-pattern>
        <url-pattern>/ModifyConnection.srv</url-pattern>
        <url-pattern>/EditConnection.srv</url-pattern>
        <url-pattern>/DeleteConnection.srv</url-pattern>
        <url-pattern>/ModifyRendering.srv</url-pattern>
         <!-- If you list http methods, only those methods are protected -->
        <http-method>GET</http-method>
        <http-method>DELETE</http-method>
        <http-method>POST</http-method>
             <http-method>PUT</http-method>
     </web-resource-collection>
     <auth-constraint>
        <role-name>spadmin</role-name>
     </auth-constraint>
   </security-constraint>

   <login-config>
     <auth-method>FORM</auth-method>
     <form-login-config>
       <form-login-page>/admin/login/login.jsp</form-login-page>
       <form-error-page>/admin/login/error.jsp</form-error-page>
     </form-login-config>
   </login-config>

   <security-role>
     <description>Security role for Smart Pack</description>
     <role-name>spadmin</role-name>
   </security-role>



From your security constraint I think this would be equivalent in terms of which pages are accessible:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
 <role rolename="spadmin"/>
  <user username="scort" password="scort" roles="spadmin"/>
</tomcat-users>

Anyway I think what you need to do is:

1. define a properties file login module based security realm, perhaps by using the admin console. Lets say you call it my-realm
2. translate the data into property files:

my-users.properties:
scort=scort

my-groups.properties:
spadmin=scort

3. put the properties files in the correct location, I'd suggest var/ security

4. specify the my-realm security realm in the geronimo web app plan <security-realm>my-realm</security-realm>

5. Include the desired principal-role mapping that maps the spadmin group to the app-specific spadmin role. There are some instructions on this at the end of http://cwiki.apache.org/GMOxDOC21/configuring-run-as-and-default-subjects-and-principal-role-mapping.html

hope this helps,
david jencks

Reply via email to