1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-08 00:16:09 +00:00

Added username to OwnCloudSamlSsoCredentials

This commit is contained in:
David A. Velasco 2015-08-03 11:20:05 +02:00
parent 3b9777c5b6
commit 6752b25b8d
4 changed files with 18 additions and 15 deletions

View File

@ -83,6 +83,7 @@ public class OwnCloudClientFactory {
am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null;
OwnCloudClient client = createOwnCloudClient(baseUri, appContext, !isSamlSso); OwnCloudClient client = createOwnCloudClient(baseUri, appContext, !isSamlSso);
String username = account.name.substring(0, account.name.lastIndexOf('@'));
if (isOauth2) { if (isOauth2) {
String accessToken = am.blockingGetAuthToken( String accessToken = am.blockingGetAuthToken(
account, account,
@ -100,11 +101,10 @@ public class OwnCloudClientFactory {
false); false);
client.setCredentials( client.setCredentials(
OwnCloudCredentialsFactory.newSamlSsoCredentials(accessToken) OwnCloudCredentialsFactory.newSamlSsoCredentials(username, accessToken)
); );
} else { } else {
String username = account.name.substring(0, account.name.lastIndexOf('@'));
//String password = am.getPassword(account); //String password = am.getPassword(account);
String password = am.blockingGetAuthToken( String password = am.blockingGetAuthToken(
account, account,
@ -137,6 +137,7 @@ public class OwnCloudClientFactory {
am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; am.getUserData(account, AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null;
OwnCloudClient client = createOwnCloudClient(baseUri, appContext, !isSamlSso); OwnCloudClient client = createOwnCloudClient(baseUri, appContext, !isSamlSso);
String username = account.name.substring(0, account.name.lastIndexOf('@'));
if (isOauth2) { // TODO avoid a call to getUserData here if (isOauth2) { // TODO avoid a call to getUserData here
AccountManagerFuture<Bundle> future = am.getAuthToken( AccountManagerFuture<Bundle> future = am.getAuthToken(
account, account,
@ -166,12 +167,11 @@ public class OwnCloudClientFactory {
String accessToken = result.getString(AccountManager.KEY_AUTHTOKEN); String accessToken = result.getString(AccountManager.KEY_AUTHTOKEN);
if (accessToken == null) throw new AuthenticatorException("WTF!"); if (accessToken == null) throw new AuthenticatorException("WTF!");
client.setCredentials( client.setCredentials(
OwnCloudCredentialsFactory.newSamlSsoCredentials(accessToken) OwnCloudCredentialsFactory.newSamlSsoCredentials(username, accessToken)
); );
} else { } else {
String username = account.name.substring(0, account.name.lastIndexOf('@'));
//String password = am.getPassword(account); //String password = am.getPassword(account);
//String password = am.blockingGetAuthToken(account, MainApp.getAuthTokenTypePass(), //String password = am.blockingGetAuthToken(account, MainApp.getAuthTokenTypePass(),
// false); // false);

View File

@ -36,8 +36,8 @@ public class OwnCloudCredentialsFactory {
return new OwnCloudBearerCredentials(authToken); return new OwnCloudBearerCredentials(authToken);
} }
public static OwnCloudCredentials newSamlSsoCredentials(String sessionCookie) { public static OwnCloudCredentials newSamlSsoCredentials(String username, String sessionCookie) {
return new OwnCloudSamlSsoCredentials(sessionCookie); return new OwnCloudSamlSsoCredentials(username, sessionCookie);
} }
public static final OwnCloudCredentials getAnonymousCredentials() { public static final OwnCloudCredentials getAnonymousCredentials() {

View File

@ -30,9 +30,11 @@ import android.net.Uri;
public class OwnCloudSamlSsoCredentials implements OwnCloudCredentials { public class OwnCloudSamlSsoCredentials implements OwnCloudCredentials {
private String mUsername;
private String mSessionCookie; private String mSessionCookie;
public OwnCloudSamlSsoCredentials(String sessionCookie) { public OwnCloudSamlSsoCredentials(String username, String sessionCookie) {
mUsername = username != null ? username : "";
mSessionCookie = sessionCookie != null ? sessionCookie : ""; mSessionCookie = sessionCookie != null ? sessionCookie : "";
} }
@ -63,8 +65,8 @@ public class OwnCloudSamlSsoCredentials implements OwnCloudCredentials {
@Override @Override
public String getUsername() { public String getUsername() {
// its unknown // not relevant for authentication, but relevant for informational purposes
return null; return mUsername;
} }
@Override @Override

View File

@ -168,6 +168,8 @@ public class AccountUtils {
account, account,
AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null; AccountUtils.Constants.KEY_SUPPORTS_SAML_WEB_SSO) != null;
String username = account.name.substring(0, account.name.lastIndexOf('@'));
if (isOauth2) { if (isOauth2) {
String accessToken = am.blockingGetAuthToken( String accessToken = am.blockingGetAuthToken(
account, account,
@ -182,10 +184,9 @@ public class AccountUtils {
AccountTypeUtils.getAuthTokenTypeSamlSessionCookie(account.type), AccountTypeUtils.getAuthTokenTypeSamlSessionCookie(account.type),
false); false);
credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials(accessToken); credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials(username, accessToken);
} else { } else {
String username = account.name.substring(0, account.name.lastIndexOf('@'));
String password = am.blockingGetAuthToken( String password = am.blockingGetAuthToken(
account, account,
AccountTypeUtils.getAuthTokenTypePass(account.type), AccountTypeUtils.getAuthTokenTypePass(account.type),