Author: tterm
Date: Fri Jan 21 15:55:20 2011
New Revision: 1061864
URL: http://svn.apache.org/viewvc?rev=1061864&view=rev
Log:
SMXCOMP-844 Possibility to choose preemptive Authentication for the http
provider endpoint.
Modified:
servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpComponent.java
servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java
Modified:
servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpComponent.java
URL:
http://svn.apache.org/viewvc/servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpComponent.java?rev=1061864&r1=1061863&r2=1061864&view=diff
==============================================================================
---
servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpComponent.java
(original)
+++
servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpComponent.java
Fri Jan 21 15:55:20 2011
@@ -257,6 +257,8 @@ public class HttpComponent extends Defau
params.setMaxTotalConnections(configuration.getMaxTotalConnections());
connectionManager.setParams(params);
client = new HttpClient(connectionManager);
+
client.getParams().setAuthenticationPreemptive(configuration.isPreemptiveAuthentication());
+
}
// Create connectionPool
if (connectionPool == null) {
Modified:
servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java
URL:
http://svn.apache.org/viewvc/servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java?rev=1061864&r1=1061863&r2=1061864&view=diff
==============================================================================
---
servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java
(original)
+++
servicemix/components/trunk/bindings/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java
Fri Jan 21 15:55:20 2011
@@ -151,6 +151,12 @@ public class HttpConfiguration implement
private boolean wantHeadersFromHttpIntoExchange;
/**
+ * This field is used to decide if the http provider processor http client
should use preemptive authentication
+ * which avoids in case of true the double sending of requests.
+ */
+ private boolean preemptiveAuthentication;
+
+ /**
* @return Returns the rootDir.
* @org.apache.xbean.Property hidden="true"
*/
@@ -663,6 +669,23 @@ public class HttpConfiguration implement
this.wantHeadersFromHttpIntoExchange = wantHeadersFromHttpIntoExchange;
}
+ /**
+ *
+ * @return true if preemptive auth is used in the http client
+ */
+ public boolean isPreemptiveAuthentication() {
+ return preemptiveAuthentication;
+ }
+
+ /**
+ *
+ * @param preemptiveAuthentication the value which strategy should be used
+ */
+ public void setPreemptiveAuthentication(boolean preemptiveAuthentication) {
+ this.preemptiveAuthentication = preemptiveAuthentication;
+ save();
+ }
+
public void save() {
setProperty(componentName + ".jettyThreadPoolSize",
Integer.toString(jettyThreadPoolSize));
setProperty(componentName + ".jettyClientThreadPoolSize",
Integer.toString(jettyClientThreadPoolSize));
@@ -684,6 +707,7 @@ public class HttpConfiguration implement
setProperty(componentName + ".proxyPort", Integer.toString(proxyPort));
setProperty(componentName + ".wantHeadersFromHttpIntoExchange", Boolean
.toString(wantHeadersFromHttpIntoExchange));
+ setProperty(componentName + ".preemptiveAuthentication",
Boolean.toString(preemptiveAuthentication));
if (rootDir != null) {
File f = new File(rootDir, CONFIG_FILE);
try {
@@ -739,10 +763,8 @@ public class HttpConfiguration implement
.getProperty(componentName + ".jettyClientThreadPoolSize"));
}
if (properties.getProperty(componentName + ".jettyClientPerProvider")
!= null) {
- jettyClientPerProvider = Boolean.valueOf(
-
properties.getProperty(componentName
- +
".jettyClientPerProvider"))
- .booleanValue();
+ jettyClientPerProvider =
Boolean.valueOf(properties.getProperty(componentName +
".jettyClientPerProvider"))
+ .booleanValue();
}
if (properties.getProperty(componentName + ".jettyConnectorClassName")
!= null) {
jettyConnectorClassName = properties.getProperty(componentName +
".jettyConnectorClassName");
@@ -799,6 +821,10 @@ public class HttpConfiguration implement
.valueOf(properties.getProperty(componentName +
".wantHeadersFromHttpIntoExchange"))
.booleanValue();
}
+ if (properties.getProperty(componentName +
".preemptiveAuthentication") != null) {
+ preemptiveAuthentication =
Boolean.valueOf(properties.getProperty(componentName +
".preemptiveAuthentication")).booleanValue();
+ }
+
return true;
}