Merge commit 'ooo/OOO330_m10'

This commit is contained in:
Jan Holesovsky
2010-10-13 11:30:56 +02:00
5 changed files with 49 additions and 4 deletions

View File

@@ -53,7 +53,7 @@
<!-- build options --> <!-- build options -->
<property name="sourcelevel" value="1.4"/> <property name="sourcelevel" value="1.4"/>
<property name="verbose" value="false"/> <property name="verbose" value="false"/>
<property name="debug" value="true"/> <property name="debug" value="${antdebug}"/>
<!-- build classpath --> <!-- build classpath -->
<path id="classpath"> <path id="classpath">
@@ -75,7 +75,7 @@
</target> </target>
<target name="compile" depends="init"> <target name="compile" depends="init">
<javac debug="${debug}" destdir="${classes}" classpathref="classpath" <javac debug="${debug}" debuglevel="lines,vars,source" destdir="${classes}" classpathref="classpath"
source="${sourcelevel}" verbose="${verbose}"> source="${sourcelevel}" verbose="${verbose}">
<src path="src"/> <src path="src"/>
</javac> </javac>

View File

@@ -41,7 +41,13 @@ COMMONS_LOGGING_JAR=$(SOLARVER)$/$(INPATH)$/bin$(UPDMINOREXT)$/commons-logging-1
COMP=fix_system_commons COMP=fix_system_commons
.ENDIF .ENDIF
ANT_FLAGS+=-Dcommons-codec-jar=$(COMMONS_CODEC_JAR) -Dcommons-lang-jar=$(COMMONS_LANG_JAR) -Dcommons-httpclient-jar=$(COMMONS_HTTPCLIENT_JAR) -Dcommons-logging-jar=$(COMMONS_LOGGING_JAR) .IF defined(debug) || defined(DEBUG)
ANTDEBUG=true
.ELSE
ANTDEBUG=off
.ENDIF
ANT_FLAGS+=-Dcommons-codec-jar=$(COMMONS_CODEC_JAR) -Dcommons-lang-jar=$(COMMONS_LANG_JAR) -Dcommons-httpclient-jar=$(COMMONS_HTTPCLIENT_JAR) -Dcommons-logging-jar=$(COMMONS_LOGGING_JAR) -Dantdebug=$(ANTDEBUG)
# creates two files wiki-publisher.oxt and mediawiki_develop.zip, the second one might be used in further build process # creates two files wiki-publisher.oxt and mediawiki_develop.zip, the second one might be used in further build process
ALLTAR: $(COMP) ANTBUILD ALLTAR: $(COMP) ANTBUILD

View File

@@ -35,6 +35,7 @@ public class EditPageParser extends HTMLEditorKit.ParserCallback
protected String m_sEditTime = ""; protected String m_sEditTime = "";
protected String m_sEditToken = ""; protected String m_sEditToken = "";
protected String m_sLoginToken = "";
protected String m_sMainURL = ""; protected String m_sMainURL = "";
private int m_nWikiArticleHash = 0; private int m_nWikiArticleHash = 0;
@@ -100,6 +101,10 @@ public class EditPageParser extends HTMLEditorKit.ParserCallback
{ {
this.m_sEditToken = ( String ) a.getAttribute( HTML.Attribute.VALUE ); this.m_sEditToken = ( String ) a.getAttribute( HTML.Attribute.VALUE );
} }
else if ( sName.equalsIgnoreCase( "wpLoginToken" ) )
{
this.m_sLoginToken = ( String ) a.getAttribute( HTML.Attribute.VALUE );
}
} }
} }

View File

@@ -784,6 +784,29 @@ public class Helper
return bResult; return bResult;
} }
static protected String GetLoginToken( String sLoginPage )
{
String sResult = "";
if ( sLoginPage != null && sLoginPage.length() > 0 )
{
try
{
StringReader aReader = new StringReader( sLoginPage );
HTMLEditorKit.Parser aParser = Helper.GetHTMLParser();
EditPageParser aCallbacks = new EditPageParser();
aParser.parse( aReader, aCallbacks, true );
sResult = aCallbacks.m_sLoginToken;
}
catch( Exception e )
{
e.printStackTrace();
}
}
return sResult;
}
static protected HostConfiguration Login( URI aMainURL, String sWikiUser, String sWikiPass, XComponentContext xContext ) static protected HostConfiguration Login( URI aMainURL, String sWikiUser, String sWikiPass, XComponentContext xContext )
throws com.sun.star.uno.Exception, java.io.IOException, WikiCancelException throws com.sun.star.uno.Exception, java.io.IOException, WikiCancelException
{ {
@@ -799,10 +822,16 @@ public class Helper
ExecuteMethod( aGetCookie, aNewHostConfig, aURI, xContext, true ); ExecuteMethod( aGetCookie, aNewHostConfig, aURI, xContext, true );
int nResultCode = aGetCookie.getStatusCode(); int nResultCode = aGetCookie.getStatusCode();
String sLoginPage = null;
if ( nResultCode == 200 )
sLoginPage = aGetCookie.getResponseBodyAsString();
aGetCookie.releaseConnection(); aGetCookie.releaseConnection();
if ( nResultCode == 200 ) if ( sLoginPage != null )
{ {
String sLoginToken = GetLoginToken( sLoginPage );
PostMethod aPost = new PostMethod(); PostMethod aPost = new PostMethod();
URI aPostURI = new URI( aMainURL.getPath() + "index.php?title=Special:Userlogin&action=submitlogin" ); URI aPostURI = new URI( aMainURL.getPath() + "index.php?title=Special:Userlogin&action=submitlogin" );
aPost.setPath( aPostURI.getEscapedPathQuery() ); aPost.setPath( aPostURI.getEscapedPathQuery() );
@@ -810,6 +839,9 @@ public class Helper
aPost.addParameter( "wpName", sWikiUser ); aPost.addParameter( "wpName", sWikiUser );
aPost.addParameter( "wpRemember", "1" ); aPost.addParameter( "wpRemember", "1" );
aPost.addParameter( "wpPassword", sWikiPass ); aPost.addParameter( "wpPassword", sWikiPass );
if ( sLoginToken.length() > 0 )
aPost.addParameter( "wpLoginToken", sLoginToken );
String[][] pArgs = GetSpecialArgs( xContext, aMainURL.getHost() ); String[][] pArgs = GetSpecialArgs( xContext, aMainURL.getHost() );
if ( pArgs != null ) if ( pArgs != null )
for ( int nArgInd = 0; nArgInd < pArgs.length; nArgInd++ ) for ( int nArgInd = 0; nArgInd < pArgs.length; nArgInd++ )

View File

@@ -145,6 +145,8 @@ public class WikiArticle
if ( nResultCode == 200 ) if ( nResultCode == 200 )
sWebPage = aRequest.getResponseBodyAsString(); sWebPage = aRequest.getResponseBodyAsString();
aRequest.releaseConnection();
if ( sWebPage != null ) if ( sWebPage != null )
{ {
StringReader r = new StringReader(sWebPage); StringReader r = new StringReader(sWebPage);