diff options
Diffstat (limited to 'external/libcmis/libcmis-fix-google-drive.patch')
-rw-r--r-- | external/libcmis/libcmis-fix-google-drive.patch | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/external/libcmis/libcmis-fix-google-drive.patch b/external/libcmis/libcmis-fix-google-drive.patch deleted file mode 100644 index 77961ce80863..000000000000 --- a/external/libcmis/libcmis-fix-google-drive.patch +++ /dev/null @@ -1,106 +0,0 @@ -diff -aru old-src/src/libcmis/oauth2-providers.cxx new-src/src/libcmis/oauth2-providers.cxx ---- old-src/src/libcmis/oauth2-providers.cxx 2016-03-01 17:14:26.000000000 +0100 -+++ new-src/src/libcmis/oauth2-providers.cxx 2016-04-28 11:28:25.233803971 +0200 -@@ -37,11 +37,28 @@ - string OAuth2Providers::OAuth2Gdrive( HttpSession* session, const string& authUrl, - const string& username, const string& password ) - { -+ /* This member function implements 'Google OAuth 2.0' -+ * -+ * The interaction is carried out by libcmis, with no web browser involved. -+ * -+ * Normal sequence (without 2FA) is: -+ * 1) a get to activate login page -+ * receive first login page, html format -+ * 2) subsequent post to sent email -+ * receive html page for password input -+ * 3) subsequent post to send password -+ * receive html page for application consent -+ * 4) subsequent post to send a consent for the application -+ * receive a single-use authorization code -+ * this code is returned as a string -+ */ -+ - static const string CONTENT_TYPE( "application/x-www-form-urlencoded" ); - // STEP 1: Log in - string res; - try - { -+ // send the first get, receive the html login page - res = session->httpGetRequest( authUrl )->getStream( )->str( ); - } - catch ( const CurlException& e ) -@@ -49,20 +66,39 @@ - return string( ); - } - -- string loginPost, loginLink; -- if ( !parseResponse( res.c_str( ), loginPost, loginLink ) ) -+ string loginEmailPost, loginEmailLink; -+ if ( !parseResponse( res.c_str( ), loginEmailPost, loginEmailLink ) ) -+ return string( ); -+ -+ loginEmailPost += "Email="; -+ loginEmailPost += string( username ); -+ -+ istringstream loginEmailIs( loginEmailPost ); -+ string loginEmailRes; -+ try -+ { -+ // send a post with user email, receive the html page for password input -+ loginEmailRes = session->httpPostRequest ( loginEmailLink, loginEmailIs, CONTENT_TYPE ) -+ ->getStream( )->str( ); -+ } -+ catch ( const CurlException& e ) -+ { -+ return string( ); -+ } -+ -+ string loginPasswdPost, loginPasswdLink; -+ if ( !parseResponse( loginEmailRes.c_str( ), loginPasswdPost, loginPasswdLink ) ) - return string( ); -- -- loginPost += "Email="; -- loginPost += string( username ); -- loginPost += "&Passwd="; -- loginPost += string( password ); -- -- istringstream loginIs( loginPost ); -- string loginRes; -- try -+ -+ loginPasswdPost += "&Passwd="; -+ loginPasswdPost += string( password ); -+ -+ istringstream loginPasswdIs( loginPasswdPost ); -+ string loginPasswdRes; -+ try - { -- loginRes = session->httpPostRequest ( loginLink, loginIs, CONTENT_TYPE ) -+ // send a post with user password, receive the application consent page -+ loginPasswdRes = session->httpPostRequest ( loginPasswdLink, loginPasswdIs, CONTENT_TYPE ) - ->getStream( )->str( ); - } - catch ( const CurlException& e ) -@@ -71,8 +107,8 @@ - } - - // STEP 2: allow libcmis to access google drive -- string approvalPost, approvalLink; -- if ( !parseResponse( loginRes. c_str( ), approvalPost, approvalLink) ) -+ string approvalPost, approvalLink; -+ if ( !parseResponse( loginPasswdRes. c_str( ), approvalPost, approvalLink) ) - return string( ); - approvalPost += "submit_access=true"; - -@@ -80,7 +116,8 @@ - string approvalRes; - try - { -- approvalRes = session->httpPostRequest ( approvalLink, approvalIs, -+ // send a post with application consent -+ approvalRes = session->httpPostRequest ( approvalLink, approvalIs, - CONTENT_TYPE) ->getStream( )->str( ); - } - catch ( const CurlException& e ) -Only in new-src/src/libcmis: oauth2-providers.cxx~ |