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 2010/03/31 11:57:50 UTC
svn commit: r929450 - in
/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim:
DKIMVerifier.java exceptions/FailException.java
exceptions/PermFailException.java
Author: bago
Date: Wed Mar 31 09:57:49 2010
New Revision: 929450
URL: http://svn.apache.org/viewvc?rev=929450&view=rev
Log:
Add related signature identity string to fail exceptions to improve verification results.
Modified:
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/FailException.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/PermFailException.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=929450&r1=929449&r2=929450&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 Wed Mar 31 09:57:49 2010
@@ -121,27 +121,27 @@ public class DKIMVerifier extends DKIMCo
.matches()) {
throw new PermFailException("inapplicable key identity local="
+ sign.getIdentityLocalPart() + " Pattern: "
- + pkr.getGranularityPattern().pattern());
+ + pkr.getGranularityPattern().pattern(), sign.getIdentity().toString());
}
if (!pkr.isHashMethodSupported(sign.getHashMethod())) {
throw new PermFailException("inappropriate hash for a="
- + sign.getHashKeyType() + "/" + sign.getHashMethod());
+ + sign.getHashKeyType() + "/" + sign.getHashMethod(), sign.getIdentity().toString());
}
if (!pkr.isKeyTypeSupported(sign.getHashKeyType())) {
throw new PermFailException("inappropriate key type for a="
- + sign.getHashKeyType() + "/" + sign.getHashMethod());
+ + sign.getHashKeyType() + "/" + sign.getHashMethod(), sign.getIdentity().toString());
}
if (pkr.isDenySubdomains()) {
if (!sign.getIdentity().toString().toLowerCase().endsWith(
("@" + sign.getDToken()).toLowerCase())) {
throw new PermFailException(
- "AUID in subdomain of SDID is not allowed by the public key record.");
+ "AUID in subdomain of SDID is not allowed by the public key record.", sign.getIdentity().toString());
}
}
} catch (IllegalStateException e) {
- throw new PermFailException("Invalid public key: "+e.getMessage());
+ throw new PermFailException("Invalid public key: "+e.getMessage(), sign.getIdentity().toString());
}
}
@@ -181,15 +181,18 @@ public class DKIMVerifier extends DKIMCo
}
}
if (key == null) {
- if (lastTempFailure != null)
+ if (lastTempFailure != null) {
+ if (sign != null) lastTempFailure.setRelatedRecordIdentity(sign.getIdentity().toString());
throw lastTempFailure;
- else if (lastPermFailure != null)
+ } else if (lastPermFailure != null) {
+ if (sign != null) lastPermFailure.setRelatedRecordIdentity(sign.getIdentity().toString());
throw lastPermFailure;
- // this is unexpected because the publicKeySelector always returns
+ } // this is unexpected because the publicKeySelector always returns
// null or exception
- else
+ else {
throw new PermFailException(
- "no key for signature [unexpected condition]");
+ "no key for signature [unexpected condition]", sign.getIdentity().toString());
+ }
}
return key;
}
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/FailException.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/FailException.java?rev=929450&r1=929449&r2=929450&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/FailException.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/FailException.java Wed Mar 31 09:57:49 2010
@@ -23,6 +23,8 @@ public class FailException extends Excep
private static final long serialVersionUID = 1584103235607992818L;
+ private String relatedRecordIdentity = null;
+
public FailException(String error) {
super(error);
}
@@ -31,4 +33,11 @@ public class FailException extends Excep
super(string, e);
}
+ public String getRelatedRecordIdentity() {
+ return relatedRecordIdentity;
+ }
+
+ public void setRelatedRecordIdentity(String relatedRecordIdentity) {
+ this.relatedRecordIdentity = relatedRecordIdentity;
+ }
}
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/PermFailException.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/PermFailException.java?rev=929450&r1=929449&r2=929450&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/PermFailException.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/exceptions/PermFailException.java Wed Mar 31 09:57:49 2010
@@ -19,6 +19,7 @@
package org.apache.james.jdkim.exceptions;
+
public class PermFailException extends FailException {
private static final long serialVersionUID = 1304736020453821093L;
@@ -31,4 +32,9 @@ public class PermFailException extends F
super(string, e);
}
+ public PermFailException(String string, String signatureIdentity) {
+ super(string);
+ setRelatedRecordIdentity(signatureIdentity);
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org