You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by na...@apache.org on 2008/04/18 07:26:10 UTC
svn commit: r649372 - in
/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart:
./ policy/builders/ policy/model/ util/
Author: nandana
Date: Thu Apr 17 22:26:07 2008
New Revision: 649372
URL: http://svn.apache.org/viewvc?rev=649372&view=rev
Log:
RAMPART-152 Applied Alexandre's patch with some changes
* Changed the behavior to apply timestamp precision in milliseconds configuration only to relevant message (not globally)
* Included check for possible null pointer values
thanks Alexandre
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/MessageOptimizer.java
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java?rev=649372&r1=649371&r2=649372&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java Thu Apr 17 22:26:07 2008
@@ -278,8 +278,28 @@
}
}
- this.config = WSSConfig.getDefaultWSConfig();
+ // Check whether RampartConfig is present
+ if (this.policyData != null && this.policyData.getRampartConfig() != null) {
+
+ boolean timestampPrecisionInMilliseconds = Boolean.valueOf(this.policyData
+ .getRampartConfig().getTimestampPrecisionInMilliseconds()).booleanValue();
+
+ // This is not the default behavior, we clone the default WSSConfig to prevent this
+ // affecting globally
+ if (timestampPrecisionInMilliseconds == WSSConfig.getDefaultWSConfig()
+ .isPrecisionInMilliSeconds()) {
+ this.config = WSSConfig.getDefaultWSConfig();
+ } else {
+ this.config = RampartUtil.getWSSConfigInstance();
+ this.config.setPrecisionInMilliSeconds(timestampPrecisionInMilliseconds);
+ }
+ } else {
+ this.config = WSSConfig.getDefaultWSConfig();
+ }
+
+
+
this.customClassLoader = msgCtx.getAxisService().getClassLoader();
if(this.sender && this.policyData != null) {
Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java?rev=649372&r1=649371&r2=649372&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java Thu Apr 17 22:26:07 2008
@@ -104,6 +104,12 @@
}
childElement = element.getFirstChildWithName(new QName(
+ RampartConfig.NS, RampartConfig.TS_PRECISION_IN_MS_LN));
+ if (childElement != null) {
+ rampartConfig.setTimestampPrecisionInMilliseconds(childElement.getText().trim());
+ }
+
+ childElement = element.getFirstChildWithName(new QName(
RampartConfig.NS, RampartConfig.TS_TTL_LN));
if (childElement != null) {
rampartConfig.setTimestampTTL(childElement.getText().trim());
Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java?rev=649372&r1=649371&r2=649372&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java Thu Apr 17 22:26:07 2008
@@ -35,6 +35,7 @@
* <ramp:encryptionUser>bob</ramp:encryptionUser>
* <ramp:passwordCallbackClass>org.apache.axis2.security.PWCallback</ramp:passwordCallbackClass>
* <ramp:policyValidatorCbClass>org.apache.axis2.security.ramp:PolicyValidatorCallbackHandler</ramp:policyValidatorCbClass>
+ * <ramp:timestampPrecisionInMilliseconds>true</timestampPrecisionInMilliseconds>
* <ramp:timestampTTL>300</ramp:timestampTTL>
* <ramp:timestampMaxSkew>0</ramp:timestampMaxSkew>
* <ramp:tokenStoreClass>org.apache.rahas.StorageImpl</ramp:tokenStoreClass>
@@ -59,7 +60,9 @@
*
*/
public class RampartConfig implements Assertion {
-
+
+ public static final boolean DEFAULT_TIMESTAMP_PRECISION_IN_MS = true;
+
public static final int DEFAULT_TIMESTAMP_TTL = 300;
public static final int DEFAULT_TIMESTAMP_MAX_SKEW = 300;
@@ -90,6 +93,8 @@
public final static String STS_CRYPTO_LN = "stsCrypto";
+ public final static String TS_PRECISION_IN_MS_LN = "timestampPrecisionInMilliseconds";
+
public final static String TS_TTL_LN = "timestampTTL";
public final static String TS_MAX_SKEW_LN = "timestampMaxSkew";
@@ -120,6 +125,8 @@
private CryptoConfig stsCryptoConfig;
+ private String timestampPrecisionInMilliseconds = Boolean.toString(DEFAULT_TIMESTAMP_PRECISION_IN_MS);
+
private String timestampTTL = Integer.toString(DEFAULT_TIMESTAMP_TTL);
private String timestampMaxSkew = Integer.toString(DEFAULT_TIMESTAMP_MAX_SKEW);
@@ -279,6 +286,12 @@
writer.writeEndElement();
}
+ if (getTimestampPrecisionInMilliseconds() != null) {
+ writer.writeStartElement(NS, TS_PRECISION_IN_MS_LN);
+ writer.writeCharacters(getTimestampPrecisionInMilliseconds());
+ writer.writeEndElement();
+ }
+
if (getTimestampTTL() != null) {
writer.writeStartElement(NS, TS_TTL_LN);
writer.writeCharacters(getTimestampTTL());
@@ -334,6 +347,14 @@
return Constants.TYPE_ASSERTION;
}
+ public String getTimestampPrecisionInMilliseconds() {
+ return timestampPrecisionInMilliseconds;
+ }
+
+ public void setTimestampPrecisionInMilliseconds(String timestampPrecisionInMilliseconds) {
+ this.timestampPrecisionInMilliseconds = timestampPrecisionInMilliseconds;
+ }
+
/**
* @return Returns the timestampTTL.
*/
Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/MessageOptimizer.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/MessageOptimizer.java?rev=649372&r1=649371&r2=649372&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/MessageOptimizer.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/MessageOptimizer.java Thu Apr 17 22:26:07 2008
@@ -98,7 +98,6 @@
while (cipherValueElements.hasNext()) {
OMElement element = (OMElement) cipherValueElements.next();
OMText text = (OMText)element.getFirstOMChild();
- System.out.println(text.getText().length());
text.setOptimize(true);
}
}
Modified: webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java?rev=649372&r1=649371&r2=649372&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java Thu Apr 17 22:26:07 2008
@@ -64,6 +64,7 @@
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSEncryptionPart;
import org.apache.ws.security.WSPasswordCallback;
+import org.apache.ws.security.WSSConfig;
import org.apache.ws.security.WSSecurityEngineResult;
import org.apache.ws.security.WSSecurityException;
import org.apache.ws.security.WSUsernameTokenPrincipal;
@@ -1454,6 +1455,25 @@
}
return null;
+ }
+
+ /**
+ * We use this method to prevent the singleton behavior of WSSConfig
+ * @return WSSConfig object with the latest settings.
+ */
+
+ public static WSSConfig getWSSConfigInstance() {
+
+ WSSConfig defaultWssConfig = WSSConfig.getDefaultWSConfig();
+ WSSConfig wssConfig = WSSConfig.getNewInstance();
+
+ wssConfig.setEnableSignatureConfirmation(defaultWssConfig.isEnableSignatureConfirmation());
+ wssConfig.setTimeStampStrict(defaultWssConfig.isTimeStampStrict());
+ wssConfig.setWsiBSPCompliant(defaultWssConfig.isWsiBSPCompliant());
+ wssConfig.setPrecisionInMilliSeconds(defaultWssConfig.isPrecisionInMilliSeconds());
+
+ return wssConfig;
+
}
}