diff --git a/.travis.yml b/.travis.yml index d553cf73..d663a0c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: android android: components: - - build-tools-20.0.0 + - build-tools-22.0.1 - android-19 - android-17 - android-14 diff --git a/build.gradle b/build.gradle index ba1be48a..9119948a 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.2.3' } } apply plugin: 'com.android.library' @@ -13,14 +13,12 @@ repositories { } dependencies { - compile 'commons-httpclient:commons-httpclient:3.1' - compile 'org.apache.jackrabbit:jackrabbit-webdav:2.7.2' - compile 'org.slf4j:slf4j-api:1.7.5' + compile 'org.apache.jackrabbit:jackrabbit-webdav:2.10.1' } android { compileSdkVersion 19 - buildToolsVersion "20.0.0" + buildToolsVersion "22.0.1" sourceSets { main { diff --git a/libs/jackrabbit-webdav-2.7.2.jar b/libs/jackrabbit-webdav-2.10.1.jar similarity index 82% rename from libs/jackrabbit-webdav-2.7.2.jar rename to libs/jackrabbit-webdav-2.10.1.jar index 6ebfbf70..06834688 100644 Binary files a/libs/jackrabbit-webdav-2.7.2.jar and b/libs/jackrabbit-webdav-2.10.1.jar differ diff --git a/sample_client/build.gradle b/sample_client/build.gradle index 20889409..3518d29e 100644 --- a/sample_client/build.gradle +++ b/sample_client/build.gradle @@ -10,7 +10,7 @@ dependencies { android { compileSdkVersion 19 - buildToolsVersion "20.0.0" + buildToolsVersion "22.0.1" sourceSets { main { diff --git a/src/com/owncloud/android/lib/common/OwnCloudClientFactory.java b/src/com/owncloud/android/lib/common/OwnCloudClientFactory.java index bc6d61c5..740aed54 100644 --- a/src/com/owncloud/android/lib/common/OwnCloudClientFactory.java +++ b/src/com/owncloud/android/lib/common/OwnCloudClientFactory.java @@ -82,8 +82,9 @@ public class OwnCloudClientFactory { boolean isSamlSso = am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; OwnCloudClient client = createOwnCloudClient(baseUri, appContext, !isSamlSso); - - if (isOauth2) { + + String username = account.name.substring(0, account.name.lastIndexOf('@')); + if (isOauth2) { String accessToken = am.blockingGetAuthToken( account, AccountTypeUtils.getAuthTokenTypeAccessToken(account.type), @@ -100,11 +101,10 @@ public class OwnCloudClientFactory { false); client.setCredentials( - OwnCloudCredentialsFactory.newSamlSsoCredentials(accessToken) + OwnCloudCredentialsFactory.newSamlSsoCredentials(username, accessToken) ); } else { - String username = account.name.substring(0, account.name.lastIndexOf('@')); //String password = am.getPassword(account); String password = am.blockingGetAuthToken( account, @@ -136,7 +136,8 @@ public class OwnCloudClientFactory { boolean isSamlSso = am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; OwnCloudClient client = createOwnCloudClient(baseUri, appContext, !isSamlSso); - + + String username = account.name.substring(0, account.name.lastIndexOf('@')); if (isOauth2) { // TODO avoid a call to getUserData here AccountManagerFuture future = am.getAuthToken( account, @@ -166,12 +167,11 @@ public class OwnCloudClientFactory { String accessToken = result.getString(AccountManager.KEY_AUTHTOKEN); if (accessToken == null) throw new AuthenticatorException("WTF!"); client.setCredentials( - OwnCloudCredentialsFactory.newSamlSsoCredentials(accessToken) + OwnCloudCredentialsFactory.newSamlSsoCredentials(username, accessToken) ); } else { - String username = account.name.substring(0, account.name.lastIndexOf('@')); //String password = am.getPassword(account); //String password = am.blockingGetAuthToken(account, MainApp.getAuthTokenTypePass(), // false); diff --git a/src/com/owncloud/android/lib/common/OwnCloudCredentialsFactory.java b/src/com/owncloud/android/lib/common/OwnCloudCredentialsFactory.java index c1632cde..e854fd67 100644 --- a/src/com/owncloud/android/lib/common/OwnCloudCredentialsFactory.java +++ b/src/com/owncloud/android/lib/common/OwnCloudCredentialsFactory.java @@ -36,8 +36,8 @@ public class OwnCloudCredentialsFactory { return new OwnCloudBearerCredentials(authToken); } - public static OwnCloudCredentials newSamlSsoCredentials(String sessionCookie) { - return new OwnCloudSamlSsoCredentials(sessionCookie); + public static OwnCloudCredentials newSamlSsoCredentials(String username, String sessionCookie) { + return new OwnCloudSamlSsoCredentials(username, sessionCookie); } public static final OwnCloudCredentials getAnonymousCredentials() { diff --git a/src/com/owncloud/android/lib/common/OwnCloudSamlSsoCredentials.java b/src/com/owncloud/android/lib/common/OwnCloudSamlSsoCredentials.java index 16c1686e..e2d67ee8 100644 --- a/src/com/owncloud/android/lib/common/OwnCloudSamlSsoCredentials.java +++ b/src/com/owncloud/android/lib/common/OwnCloudSamlSsoCredentials.java @@ -30,9 +30,11 @@ import android.net.Uri; public class OwnCloudSamlSsoCredentials implements OwnCloudCredentials { + private String mUsername; private String mSessionCookie; - public OwnCloudSamlSsoCredentials(String sessionCookie) { + public OwnCloudSamlSsoCredentials(String username, String sessionCookie) { + mUsername = username != null ? username : ""; mSessionCookie = sessionCookie != null ? sessionCookie : ""; } @@ -63,8 +65,8 @@ public class OwnCloudSamlSsoCredentials implements OwnCloudCredentials { @Override public String getUsername() { - // its unknown - return null; + // not relevant for authentication, but relevant for informational purposes + return mUsername; } @Override diff --git a/src/com/owncloud/android/lib/common/accounts/AccountUtils.java b/src/com/owncloud/android/lib/common/accounts/AccountUtils.java index 6d2b033e..62eeed7b 100644 --- a/src/com/owncloud/android/lib/common/accounts/AccountUtils.java +++ b/src/com/owncloud/android/lib/common/accounts/AccountUtils.java @@ -167,7 +167,9 @@ public class AccountUtils { boolean isSamlSso = am.getUserData( account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; - + + String username = account.name.substring(0, account.name.lastIndexOf('@')); + if (isOauth2) { String accessToken = am.blockingGetAuthToken( account, @@ -182,10 +184,9 @@ public class AccountUtils { AccountTypeUtils.getAuthTokenTypeSamlSessionCookie(account.type), false); - credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials(accessToken); + credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials(username, accessToken); } else { - String username = account.name.substring(0, account.name.lastIndexOf('@')); String password = am.blockingGetAuthToken( account, AccountTypeUtils.getAuthTokenTypePass(account.type), diff --git a/test_client/build.gradle b/test_client/build.gradle index 7eab7e57..d9d8f39d 100644 --- a/test_client/build.gradle +++ b/test_client/build.gradle @@ -12,7 +12,7 @@ dependencies { android { compileSdkVersion 19 - buildToolsVersion "20.0.0" + buildToolsVersion "22.0.1" sourceSets { main { diff --git a/test_client/tests/src/com/owncloud/android/lib/test_project/test/OwnCloudClientTest.java b/test_client/tests/src/com/owncloud/android/lib/test_project/test/OwnCloudClientTest.java index 5328e9cf..e11aff8a 100644 --- a/test_client/tests/src/com/owncloud/android/lib/test_project/test/OwnCloudClientTest.java +++ b/test_client/tests/src/com/owncloud/android/lib/test_project/test/OwnCloudClientTest.java @@ -135,7 +135,7 @@ public class OwnCloudClientTest extends AndroidTestCase { client.setCredentials(credentials); assertEquals("Bearer credentials not set", credentials, client.getCredentials()); - credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials("samlSessionCookie=124"); + credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials("user", "samlSessionCookie=124"); client.setCredentials(credentials); assertEquals("SAML2 session credentials not set", credentials, client.getCredentials());