You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2015/11/06 16:13:44 UTC

[3/6] cxf git commit: Allow setting the signature properties directly

Allow setting the signature properties directly


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/7da65ce2
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/7da65ce2
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/7da65ce2

Branch: refs/heads/master
Commit: 7da65ce2354ba3122cde0e618dbcd34d85f6da91
Parents: e522f27
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Fri Nov 6 12:19:01 2015 +0000
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Fri Nov 6 14:58:59 2015 +0000

----------------------------------------------------------------------
 .../jose/common/KeyManagementUtils.java         |  2 +-
 .../security/jose/jws/JwsCompactProducer.java   | 22 +++++++++++++++-----
 .../cxf/rs/security/jose/jws/JwsUtils.java      |  2 +-
 3 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/7da65ce2/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/KeyManagementUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/KeyManagementUtils.java b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/KeyManagementUtils.java
index bb771a6..a53e7a8 100644
--- a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/KeyManagementUtils.java
+++ b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/common/KeyManagementUtils.java
@@ -311,7 +311,7 @@ public final class KeyManagementUtils {
     }
     public static String getKeyAlgorithm(Message m, Properties props, String propName, String defaultAlg) {
         String algo = props.getProperty(propName);
-        if (algo == null) {
+        if (algo == null && m != null) {
             algo = (String)m.getContextualProperty(propName);
         }
         if (algo == null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/7da65ce2/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
index 8ed3dc6..5fba635 100644
--- a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
+++ b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsCompactProducer.java
@@ -37,6 +37,7 @@ public class JwsCompactProducer {
     private String plainJwsPayload;
     private String signature;
     private boolean detached;
+    private Properties signatureProperties;
     public JwsCompactProducer(String plainJwsPayload) {
         this(plainJwsPayload, false);
     }
@@ -138,12 +139,10 @@ public class JwsCompactProducer {
         return getJwsHeaders().getSignatureAlgorithm();
     }
     private void checkAlgorithm() {
-        if (getAlgorithm() == null && PhaseInterceptorChain.getCurrentMessage() != null) {
+        if (getAlgorithm() == null) {
+            Properties sigProps = getSignatureProperties();
             Message m = PhaseInterceptorChain.getCurrentMessage();
-            Properties props = KeyManagementUtils.loadStoreProperties(m, false, 
-                                                                      JoseConstants.RSSEC_SIGNATURE_OUT_PROPS, 
-                                                                      JoseConstants.RSSEC_SIGNATURE_PROPS);
-            String signatureAlgo = JwsUtils.getSignatureAlgo(m, props, null, null);
+            String signatureAlgo = JwsUtils.getSignatureAlgo(m, sigProps, null, null);
             if (signatureAlgo != null) {
                 getJwsHeaders().setSignatureAlgorithm(SignatureAlgorithm.getAlgorithm(signatureAlgo));
             }
@@ -153,4 +152,17 @@ public class JwsCompactProducer {
             throw new JwsException(JwsException.Error.INVALID_ALGORITHM);
         }
     }
+    public Properties getSignatureProperties() {
+        if (signatureProperties == null && PhaseInterceptorChain.getCurrentMessage() != null) {
+            Message m = PhaseInterceptorChain.getCurrentMessage();
+            signatureProperties = KeyManagementUtils.loadStoreProperties(m, false, 
+                                                                      JoseConstants.RSSEC_SIGNATURE_OUT_PROPS, 
+                                                                      JoseConstants.RSSEC_SIGNATURE_PROPS);
+            
+        }
+        return signatureProperties;
+    }
+    public void setSignatureProperties(Properties signatureProperties) {
+        this.signatureProperties = signatureProperties;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/7da65ce2/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
index fcebd84..b9f0001 100644
--- a/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
+++ b/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsUtils.java
@@ -400,7 +400,7 @@ public final class JwsUtils {
             
             // Check for deprecated identifier first
             String sigAlgo = props.getProperty(JoseConstants.DEPR_RSSEC_SIGNATURE_ALGORITHM);
-            if (sigAlgo == null) {
+            if (sigAlgo == null && m != null) {
                 sigAlgo = (String)m.getContextualProperty(JoseConstants.DEPR_RSSEC_SIGNATURE_ALGORITHM);
             }
             if (sigAlgo != null) {