tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yo...@apache.org
Subject cvs commit: jakarta-tomcat-catalina/webapps/docs/config realm.xml
Date Wed, 27 Oct 2004 16:38:42 GMT
yoavs       2004/10/27 09:38:42

  Modified:    catalina/src/share/org/apache/catalina/realm RealmBase.java
               webapps/docs/config realm.xml
  Log:
  Added doc and better exception handling to Bugzilla 31592 impl.
  
  Revision  Changes    Path
  1.43      +40 -6     jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/realm/RealmBase.java
  
  Index: RealmBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/realm/RealmBase.java,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- RealmBase.java	27 Oct 2004 15:56:57 -0000	1.42
  +++ RealmBase.java	27 Oct 2004 16:38:41 -0000	1.43
  @@ -21,6 +21,7 @@
   import java.beans.PropertyChangeListener;
   import java.beans.PropertyChangeSupport;
   import java.io.IOException;
  +import java.io.UnsupportedEncodingException;
   import java.security.MessageDigest;
   import java.security.NoSuchAlgorithmException;
   import java.security.Principal;
  @@ -337,8 +338,22 @@
               return null;
           String serverDigestValue = md5a1 + ":" + nOnce + ":" + nc + ":"
               + cnonce + ":" + qop + ":" + md5a2;
  +
  +        byte[] valueBytes = null;
  +        if(getDigestEncoding() == null) {
  +            valueBytes = serverDigestValue.getBytes();
  +        } else {
  +            try {
  +                valueBytes = serverDigestValue.getBytes(getDigestEncoding());
  +            } catch (UnsupportedEncodingException uee) {
  +                log.error("Illegal digestEncoding: " + getDigestEncoding(), uee);
  +                throw new IllegalArgumentException(uee.getMessage());
  +            }
  +        }
  +
           String serverDigest =
  -            md5Encoder.encode(md5Helper.digest(serverDigestValue.getBytes()));
  +            md5Encoder.encode(md5Helper.digest(valueBytes));
  +
           if (log.isDebugEnabled()) {
               log.debug("Digest : " + clientDigest + " Username:" + username 
                       + " ClientSigest:" + clientDigest + " nOnce:" + nOnce 
  @@ -1022,7 +1037,12 @@
                   if(getDigestEncoding() == null) {
                       bytes = credentials.getBytes();
                   } else {
  -                    bytes = credentials.getBytes(getDigestEncoding());
  +                    try {
  +                        bytes = credentials.getBytes(getDigestEncoding());
  +                    } catch (UnsupportedEncodingException uee) {
  +                        log.error("Illegal digestEncoding: " + getDigestEncoding(), uee);
  +                        throw new IllegalArgumentException(uee.getMessage());
  +                    }
                   }
                   md.update(bytes);
   
  @@ -1047,8 +1067,8 @@
               try {
                   md5Helper = MessageDigest.getInstance("MD5");
               } catch (NoSuchAlgorithmException e) {
  -                e.printStackTrace();
  -                throw new IllegalStateException();
  +                log.error("Couldn't get MD5 digest: ", e);
  +                throw new IllegalStateException(e.getMessage());
               }
           }
   
  @@ -1059,8 +1079,22 @@
       	
           String digestValue = username + ":" + realmName + ":"
               + getPassword(username);
  +
  +        byte[] valueBytes = null;
  +        if(getDigestEncoding() == null) {
  +            valueBytes = digestValue.getBytes();
  +        } else {
  +            try {
  +                valueBytes = digestValue.getBytes(getDigestEncoding());
  +            } catch (UnsupportedEncodingException uee) {
  +                log.error("Illegal digestEncoding: " + getDigestEncoding(), uee);
  +                throw new IllegalArgumentException(uee.getMessage());
  +            }
  +        }
  +
           byte[] digest =
  -            md5Helper.digest(digestValue.getBytes());
  +            md5Helper.digest(valueBytes);
  +
           return md5Encoder.encode(digest);
       }
   
  
  
  
  1.7       +5 -0      jakarta-tomcat-catalina/webapps/docs/config/realm.xml
  
  Index: realm.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/config/realm.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- realm.xml	10 Oct 2004 20:43:49 -0000	1.6
  +++ realm.xml	27 Oct 2004 16:38:42 -0000	1.7
  @@ -111,6 +111,11 @@
           to encode user passwords stored in the database.  If not specified,
           user passwords are assumed to be stored in clear-text.</p>
         </attribute>
  +   
  +      <attribute name="digestEncoding" required="false">
  +        <p>The charset for encoding digests.  If not specified, the platform
  +        default will be used.</p>
  +      </attribute>
   
         <attribute name="driverName" required="true">
           <p>Fully qualified Java class name of the JDBC driver to be
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Mime
View raw message