You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2009/10/12 13:58:02 UTC

svn commit: r824308 - in /james/jdkim/trunk/main/src: main/java/org/apache/james/jdkim/DKIMVerifier.java test/java/org/apache/james/jdkim/DKIMVerifierTest.java

Author: bago
Date: Mon Oct 12 11:58:02 2009
New Revision: 824308

URL: http://svn.apache.org/viewvc?rev=824308&view=rev
Log:
Changed unchecked IllegalStateException to checked PermFailExceptions in "apply" method.

Modified:
    james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
    james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java

Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java?rev=824308&r1=824307&r2=824308&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java Mon Oct 12 11:58:02 2009
@@ -108,29 +108,34 @@
     }
 
     /**
-     * @see org.apache.james.jdkim.api.PublicKeyRecord#apply(org.apache.james.jdkim.api.SignatureRecord)
+     * asserts applicability of a signature record the a public key record.
+     * throws an 
+     * 
+     * @param pkr public key record
+     * @param sign signature record
+     * @throws PermFailException when the keys are not applicable
      */
-    public static void apply(PublicKeyRecord pkr, SignatureRecord sign) {
+    public static void apply(PublicKeyRecord pkr, SignatureRecord sign) throws PermFailException {
         if (!pkr.getGranularityPattern().matcher(sign.getIdentityLocalPart())
                 .matches()) {
-            throw new IllegalStateException("inapplicable key identity local="
+            throw new PermFailException("inapplicable key identity local="
                     + sign.getIdentityLocalPart() + " Pattern: "
                     + pkr.getGranularityPattern().pattern());
         }
 
         if (!pkr.isHashMethodSupported(sign.getHashMethod())) {
-            throw new IllegalStateException("inappropriate hash for a="
+            throw new PermFailException("inappropriate hash for a="
                     + sign.getHashKeyType() + "/" + sign.getHashMethod());
         }
         if (!pkr.isKeyTypeSupported(sign.getHashKeyType())) {
-            throw new IllegalStateException("inappropriate key type for a="
+            throw new PermFailException("inappropriate key type for a="
                     + sign.getHashKeyType() + "/" + sign.getHashMethod());
         }
 
         if (pkr.isDenySubdomains()) {
             if (!sign.getIdentity().toString().toLowerCase().endsWith(
                     ("@" + sign.getDToken()).toLowerCase())) {
-                throw new IllegalStateException(
+                throw new PermFailException(
                         "AUID in subdomain of SDID is not allowed by the public key record.");
             }
         }
@@ -166,9 +171,6 @@
                 // TODO loggin
                 apply(tempKey, sign);
                 key = tempKey;
-            } catch (IllegalStateException e) {
-                lastPermFailure = new PermFailException("Inapplicable key: "
-                        + e.getMessage(), e);
             } catch (TempFailException tf) {
                 lastTempFailure = tf;
             } catch (PermFailException pf) {

Modified: james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java?rev=824308&r1=824307&r2=824308&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java (original)
+++ james/jdkim/trunk/main/src/test/java/org/apache/james/jdkim/DKIMVerifierTest.java Mon Oct 12 11:58:02 2009
@@ -20,6 +20,7 @@
 package org.apache.james.jdkim;
 
 import org.apache.james.jdkim.api.PublicKeyRecord;
+import org.apache.james.jdkim.exceptions.PermFailException;
 import org.apache.james.jdkim.tagvalue.PublicKeyRecordImpl;
 import org.apache.james.jdkim.tagvalue.SignatureRecordImpl;
 
@@ -27,7 +28,7 @@
 
 public class DKIMVerifierTest extends TestCase {
 
-    public void testApply() {
+    public void testApply() throws PermFailException {
         PublicKeyRecord pkr = new PublicKeyRecordImpl(
                 "k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB");
         pkr.validate();
@@ -43,7 +44,7 @@
                             new SignatureRecordImpl(
                                     "v=1; a=dsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject:from:to:content-type; bh=AbPsrGRdyVjM2e5ZZdhQA/aLe305f2bPvPRohUxrGjo=; b=ksNsfQJv20M9/Vf66sMJT1WHM/fUfcqli1NfkyxSOjr8jlNTH4JNCGacb2neWuwMN4C4TFXqMR8BENkn+XrCV1FjrlW1mCxlLDilVypP/uqqq04KzJpVyJG6zZLd/0DeknSLN6sDGKdCvIdS+YpHEhUxoEuf6QizCs8PTXhnJiA="));
             fail("This is not a signature for that key");
-        } catch (IllegalStateException e) {
+        } catch (PermFailException e) {
         }
         pkr = new PublicKeyRecordImpl(
                 "k=rsa; t=y:s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB");
@@ -60,7 +61,7 @@
                             new SignatureRecordImpl(
                                     "v=1; a=rsa-sha256; c=relaxed/relaxed; i=test@subdomain.gmail.com; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject:from:to:content-type; bh=AbPsrGRdyVjM2e5ZZdhQA/aLe305f2bPvPRohUxrGjo=; b=ksNsfQJv20M9/Vf66sMJT1WHM/fUfcqli1NfkyxSOjr8jlNTH4JNCGacb2neWuwMN4C4TFXqMR8BENkn+XrCV1FjrlW1mCxlLDilVypP/uqqq04KzJpVyJG6zZLd/0DeknSLN6sDGKdCvIdS+YpHEhUxoEuf6QizCs8PTXhnJiA="));
             fail("This is not a signature for that key");
-        } catch (IllegalStateException e) {
+        } catch (PermFailException e) {
         }
         pkr = new PublicKeyRecordImpl(
                 "k=rsa; g=test*; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB");
@@ -77,7 +78,7 @@
                             new SignatureRecordImpl(
                                     "v=1; a=rsa-sha256; c=relaxed/relaxed; i=bad@subdomain.gmail.com; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject:from:to:content-type; bh=AbPsrGRdyVjM2e5ZZdhQA/aLe305f2bPvPRohUxrGjo=; b=ksNsfQJv20M9/Vf66sMJT1WHM/fUfcqli1NfkyxSOjr8jlNTH4JNCGacb2neWuwMN4C4TFXqMR8BENkn+XrCV1FjrlW1mCxlLDilVypP/uqqq04KzJpVyJG6zZLd/0DeknSLN6sDGKdCvIdS+YpHEhUxoEuf6QizCs8PTXhnJiA="));
             fail("This is not a signature for that key");
-        } catch (IllegalStateException e) {
+        } catch (PermFailException e) {
         }
         pkr = new PublicKeyRecordImpl(
                 "k=rsa; g=test*; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIhyR3oItOy22ZOaBrIVe9m/iME3RqOJeasANSpg2YTHTYV+Xtp4xwf5gTjCmHQEMOs0qYu0FYiNQPQogJ2t0Mfx9zNu06rfRBDjiIU9tpx2T+NGlWZ8qhbiLo5By8apJavLyqTLavyPSrvsx0B3YzC63T4Age2CDqZYA+OwSMWQIDAQAB");
@@ -93,7 +94,7 @@
                             new SignatureRecordImpl(
                                     "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject:from:to:content-type; bh=AbPsrGRdyVjM2e5ZZdhQA/aLe305f2bPvPRohUxrGjo=; b=ksNsfQJv20M9/Vf66sMJT1WHM/fUfcqli1NfkyxSOjr8jlNTH4JNCGacb2neWuwMN4C4TFXqMR8BENkn+XrCV1FjrlW1mCxlLDilVypP/uqqq04KzJpVyJG6zZLd/0DeknSLN6sDGKdCvIdS+YpHEhUxoEuf6QizCs8PTXhnJiA="));
             fail("This hash method is not supported for that publick key");
-        } catch (IllegalStateException e) {
+        } catch (PermFailException e) {
         }
     }
 



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