You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2012/09/12 15:28:00 UTC
svn commit: r1383929 -
/manifoldcf/branches/CONNECTORS-518/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
Author: kwright
Date: Wed Sep 12 13:28:00 2012
New Revision: 1383929
URL: http://svn.apache.org/viewvc?rev=1383929&view=rev
Log:
Fix login problem pointed out by Maciej
Modified:
manifoldcf/branches/CONNECTORS-518/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
Modified: manifoldcf/branches/CONNECTORS-518/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-518/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java?rev=1383929&r1=1383928&r2=1383929&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-518/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java (original)
+++ manifoldcf/branches/CONNECTORS-518/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java Wed Sep 12 13:28:00 2012
@@ -172,11 +172,13 @@ public class WikiConnector extends org.a
if (serverDomain != null && !"".equals(serverDomain)) {
loginParams.put("lgdomain", serverDomain);
}
-
+
+ APILoginResult result = new APILoginResult();
+
HttpMethodBase method = getInitializedPostMethod(loginURL,loginParams);
try {
- ExecuteAPILoginThread t = new ExecuteAPILoginThread(client, method);
+ ExecuteAPILoginThread t = new ExecuteAPILoginThread(client, method, result);
try {
t.start();
t.join();
@@ -213,8 +215,17 @@ public class WikiConnector extends org.a
throw e;
}
+ if (result.result)
+ return true;
+
// Grab the token from the first call
token = t.getToken();
+ if (token == null)
+ {
+ // We don't need a token, we just couldn't log in
+ Logging.connectors.debug("WIKI API login error: '" + result.reason + "'");
+ throw new ManifoldCFException("WIKI API login error: " + result.reason, null, ManifoldCFException.REPOSITORY_CONNECTION_ERROR);
+ }
} catch (InterruptedException e) {
// Drop the connection on the floor
@@ -246,14 +257,8 @@ public class WikiConnector extends org.a
}
}
- if (token == null) {
- throw new ManifoldCFException("WIKI API login returned a null token!");
- }
-
// First request is finished. Fire off the second one.
- APILoginResult result = new APILoginResult();
-
loginParams.put("lgtoken", token);
method = getInitializedPostMethod(loginURL,loginParams);
@@ -343,14 +348,16 @@ public class WikiConnector extends org.a
protected HttpClient client;
protected HttpMethodBase executeMethod;
+ protected APILoginResult result;
protected Throwable exception = null;
protected String token = null;
- public ExecuteAPILoginThread(HttpClient client, HttpMethodBase executeMethod) {
+ public ExecuteAPILoginThread(HttpClient client, HttpMethodBase executeMethod, APILoginResult result) {
super();
setDaemon(true);
this.client = client;
this.executeMethod = executeMethod;
+ this.result = result;
}
public void run() {
@@ -374,7 +381,7 @@ public class WikiConnector extends org.a
// />
//</api>
XMLStream x = new XMLStream();
- WikiLoginAPIContext c = new WikiLoginAPIContext(x);
+ WikiLoginAPIContext c = new WikiLoginAPIContext(x,result);
x.setContext(c);
try {
try {
@@ -416,14 +423,16 @@ public class WikiConnector extends org.a
*/
protected class WikiLoginAPIContext extends SingleLevelContext {
+ protected APILoginResult result;
protected String token = null;
- public WikiLoginAPIContext(XMLStream theStream) {
+ public WikiLoginAPIContext(XMLStream theStream, APILoginResult result) {
super(theStream, "api");
+ this.result = result;
}
protected BaseProcessingContext createChild(String namespaceURI, String localName, String qName, Attributes atts) {
- return new WikiLoginAPIResultAPIContext(theStream, namespaceURI, localName, qName, atts);
+ return new WikiLoginAPIResultAPIContext(theStream, namespaceURI, localName, qName, atts, result);
}
protected void finishChild(BaseProcessingContext child)
@@ -443,10 +452,12 @@ public class WikiConnector extends org.a
*/
protected class WikiLoginAPIResultAPIContext extends BaseProcessingContext {
+ protected APILoginResult result;
protected String token = null;
- public WikiLoginAPIResultAPIContext(XMLStream theStream, String namespaceURI, String localName, String qName, Attributes atts) {
+ public WikiLoginAPIResultAPIContext(XMLStream theStream, String namespaceURI, String localName, String qName, Attributes atts, APILoginResult result) {
super(theStream, namespaceURI, localName, qName, atts);
+ this.result = result;
}
protected XMLContext beginTag(String namespaceURI, String localName, String qName, Attributes atts)
@@ -455,6 +466,10 @@ public class WikiConnector extends org.a
String loginResult = atts.getValue("result");
if ("NeedToken".equals(loginResult)) {
token = atts.getValue("token");
+ } else if ("Success".equals(loginResult)) {
+ result.result = true;
+ } else {
+ result.reason = loginResult;
}
}
return super.beginTag(namespaceURI, localName, qName, atts);