yoavs       2005/07/22 06:47:53

  Modified:    webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm
                        SaveJDBCRealmAction.java
               webapps/docs changelog.xml
  Log:
  Bugzilla 35758: http://issues.apache.org/bugzilla/show_bug.cgi?id=35758
  
  Revision  Changes    Path
  1.13      +47 -21    
jakarta-tomcat-catalina/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm/SaveJDBCRealmAction.java
  
  Index: SaveJDBCRealmAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm/SaveJDBCRealmAction.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- SaveJDBCRealmAction.java  18 Oct 2004 06:37:54 -0000      1.12
  +++ SaveJDBCRealmAction.java  22 Jul 2005 13:47:53 -0000      1.13
  @@ -228,49 +228,51 @@
   
           // Perform attribute updates as requested
           String attribute = null;
  +        String value = null;
  +
           try {
   
               ObjectName roname = new ObjectName(rObjectName);
   
               attribute = "digest";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("digest",  
rform.getDigest()));
  +            value = rform.getDigest();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "driverName";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("driverName",  
rform.getDriver()));
  +            value = rform.getDriver();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "roleNameCol";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("roleNameCol",  
rform.getRoleNameCol()));
  +            value = rform.getRoleNameCol();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "userNameCol";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("userNameCol",  
rform.getUserNameCol()));
  +            value = rform.getUserNameCol();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "userCredCol";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("userCredCol",  
rform.getPasswordCol()));
  +            value = rform.getPasswordCol();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "userTable";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("userTable",  
rform.getUserTable()));
  +            value = rform.getUserTable();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "userRoleTable";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("userRoleTable",  
rform.getRoleTable()));
  +            value = rform.getRoleTable();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "connectionName";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("connectionName",  
rform.getConnectionName()));
  +            value = rform.getConnectionName();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "connectionURL";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("connectionURL",  
rform.getConnectionURL()));
  +            value = rform.getConnectionURL();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
               attribute = "connectionPassword";
  -            mBServer.setAttribute(roname,
  -                                  new Attribute("connectionPassword",  
rform.getConnectionPassword()));
  +            value = rform.getConnectionPassword();
  +            setAttributeIfPresent(mBServer, roname, attribute, value);
   
           } catch (Exception e) {
   
  @@ -289,5 +291,29 @@
           return (mapping.findForward("Save Successful"));
           
       }
  +
  +    /**
  +     * Sets the given attribute to the given value
  +     * in the given server's object name, if the value
  +     * is not null or empty.
  +     *
  +     * @param theServer The server
  +     * @param roname The object name
  +     * @param attribute The attribute name
  +     * @param value The attribute value
  +     * @throws JMException If a JMX error occurs
  +     */
  +    protected void setAttributeIfPresent(MBeanServer mBServer, ObjectName 
roname, String attribute, String value)
  +        throws JMException {
  +
  +        if((mBServer == null) || (roname == null) || (attribute == null)) {
  +            throw new IllegalArgumentException("MBeanServer, ObjectName, 
attribute required.");
  +        }
  +
  +        if((value != null) && (value.trim().length() > 0)) {
  +            mBServer.setAttribute(roname,
  +                                  new Attribute(attribute,  value));
  +        }
  +    }
       
   }
  
  
  
  1.333     +8 -0      jakarta-tomcat-catalina/webapps/docs/changelog.xml
  
  Index: changelog.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/changelog.xml,v
  retrieving revision 1.332
  retrieving revision 1.333
  diff -u -r1.332 -r1.333
  --- changelog.xml     22 Jul 2005 13:01:14 -0000      1.332
  +++ changelog.xml     22 Jul 2005 13:47:53 -0000      1.333
  @@ -408,6 +408,14 @@
         </add>
        </changelog>
     </subsection>
  +  
  +  <subsection name="Webapps">
  +    <changelog>
  +      <fix>
  +        <bug>35758</bug>: Admin webapp mishandling digest attribute of 
JDBCDataSourceRealm. (yoavs)
  +      </fix>
  +    </changelog>
  +  </subsection>
    </section>
   
   <section name="Tomcat 5.5.9 (yoavs)">
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to