-Subproject commit c01001b5a1b19ab4c6ff789730a6659b8f6bcbb5
+Subproject commit 179ef41f4c43c162a5fde2fe95594e9b70044b41
Intent getServerInfoIntent = new Intent();\r
getServerInfoIntent.setAction(OperationsService.ACTION_GET_SERVER_INFO);\r
getServerInfoIntent.putExtra(OperationsService.EXTRA_SERVER_URL, uri);\r
- getServerInfoIntent.putExtra(OperationsService.EXTRA_AUTH_TOKEN_TYPE, mAuthTokenType);\r
if (mOperationsServiceBinder != null) {\r
- //Log_OC.wtf(TAG, "checking server..." );\r
mWaitingForOpId = mOperationsServiceBinder.newOperation(getServerInfoIntent);\r
} else {\r
Log_OC.wtf(TAG, "Server check tried with OperationService unbound!" );\r
IndeterminateProgressDialog.newInstance(R.string.auth_trying_to_login, true);\r
dialog.show(getSupportFragmentManager(), WAIT_DIALOG_TAG);\r
\r
- /// test credentials accessing the root folder\r
- String remotePath ="";\r
- boolean successIfAbsent = false;\r
- startExistenceCheckRemoteOperation(\r
- remotePath, this, successIfAbsent, username, password);\r
+ /// validate credentials accessing the root folder\r
+ accessRootFolderRemoteOperation(username, password);\r
\r
}\r
\r
- private void startExistenceCheckRemoteOperation(\r
- String remotePath, Context context, boolean successIfAbsent,\r
- String username, String password) {\r
+ private void accessRootFolderRemoteOperation(String username, String password) {\r
Intent existenceCheckIntent = new Intent();\r
existenceCheckIntent.setAction(OperationsService.ACTION_EXISTENCE_CHECK);\r
existenceCheckIntent.putExtra(OperationsService.EXTRA_SERVER_URL, mServerInfo.mBaseUrl);\r
- existenceCheckIntent.putExtra(OperationsService.EXTRA_REMOTE_PATH, remotePath);\r
- existenceCheckIntent.putExtra(OperationsService.EXTRA_SUCCESS_IF_ABSENT, successIfAbsent);\r
+ existenceCheckIntent.putExtra(OperationsService.EXTRA_REMOTE_PATH, "/");\r
existenceCheckIntent.putExtra(OperationsService.EXTRA_USERNAME, username);\r
existenceCheckIntent.putExtra(OperationsService.EXTRA_PASSWORD, password);\r
existenceCheckIntent.putExtra(OperationsService.EXTRA_AUTH_TOKEN, mAuthToken);\r
IndeterminateProgressDialog.newInstance(R.string.auth_trying_to_login, true);\r
dialog.show(getSupportFragmentManager(), WAIT_DIALOG_TAG);\r
\r
- /// test credentials accessing the root folder\r
- String remotePath ="";\r
- boolean successIfAbsent = false;\r
- startExistenceCheckRemoteOperation(\r
- remotePath, this, successIfAbsent, "", "");\r
+ /// validate credentials accessing the root folder\r
+ accessRootFolderRemoteOperation("", "");\r
\r
}\r
\r
//mAuthToken = ((OAuth2GetAccessToken)operation).getResultTokenMap().get(OAuth2Constants.KEY_ACCESS_TOKEN);\r
Log_OC.d(TAG, "Got ACCESS TOKEN: " + mAuthToken);\r
\r
- String remotePath ="";\r
- boolean successIfAbsent = false;\r
- startExistenceCheckRemoteOperation(\r
- remotePath, this, successIfAbsent, "", "");\r
+ accessRootFolderRemoteOperation("", "");\r
\r
} else {\r
updateAuthStatusIconAndText(result);\r
}
private Context mContext;
- private String mWebDavUrl;
/**
* Constructor
* @param context Android context of the caller.
* @param webdavUrl
*/
- public DetectAuthenticationMethodOperation(Context context, String webdavUrl) {
+ public DetectAuthenticationMethodOperation(Context context) {
mContext = context;
- mWebDavUrl = webdavUrl;
}
private static final String TAG = GetServerInfoOperation.class.getSimpleName();
private String mUrl;
- private String mAuthTokenType;
private Context mContext;
private ServerInfo mResultData;
* Constructor.
*
* @param url URL to an ownCloud server.
- * @param authTokenType Identifies the authorization token supported by the caller;
- * TODO ugly dependency, get rid of it.
* @param context Android context; needed to check network state
* TODO ugly dependency, get rid of it.
*/
- public GetServerInfoOperation(String url, String authTokenType, Context context) {
+ public GetServerInfoOperation(String url, Context context) {
mUrl = trimWebdavSuffix(url);
- mAuthTokenType = authTokenType;
mContext = context;
mResultData = new ServerInfo();
private RemoteOperationResult detectAuthorizationMethod(OwnCloudClient client) {
Log_OC.d(TAG, "Trying empty authorization to detect authentication method");
- String webdav_path = AccountUtils.getWebdavPath(mResultData.mVersion, mAuthTokenType);
- String webdav_url = mResultData.mBaseUrl + webdav_path;
DetectAuthenticationMethodOperation operation =
- new DetectAuthenticationMethodOperation(mContext, webdav_url);
+ new DetectAuthenticationMethodOperation(mContext);
return operation.execute(client);
}
public static final String EXTRA_ACCOUNT = "ACCOUNT";
public static final String EXTRA_SERVER_URL = "SERVER_URL";
- public static final String EXTRA_AUTH_TOKEN_TYPE = "AUTH_TOKEN_TYPE";
public static final String EXTRA_OAUTH2_QUERY_PARAMETERS = "OAUTH2_QUERY_PARAMETERS";
public static final String EXTRA_REMOTE_PATH = "REMOTE_PATH";
public static final String EXTRA_SEND_INTENT = "SEND_INTENT";
} else if (action.equals(ACTION_GET_SERVER_INFO)) {
// check OC server and get basic information from it
- String authTokenType =
- operationIntent.getStringExtra(EXTRA_AUTH_TOKEN_TYPE);
- operation = new GetServerInfoOperation(
- serverUrl, authTokenType, OperationsService.this);
+ operation = new GetServerInfoOperation(serverUrl, OperationsService.this);
} else if (action.equals(ACTION_OAUTH2_GET_ACCESS_TOKEN)) {
/// GET ACCESS TOKEN to the OAuth server
} else if (action.equals(ACTION_EXISTENCE_CHECK)) {
// Existence Check
String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
- boolean successIfAbsent = operationIntent.getBooleanExtra(EXTRA_SUCCESS_IF_ABSENT, true);
+ boolean successIfAbsent = operationIntent.getBooleanExtra(EXTRA_SUCCESS_IF_ABSENT, false);
operation = new ExistenceCheckRemoteOperation(remotePath, OperationsService.this, successIfAbsent);
} else if (action.equals(ACTION_GET_USER_NAME)) {
getContentResolver());
} else {
OwnCloudCredentials credentials = null;
- if (mLastTarget.mUsername != null) {
+ if (mLastTarget.mUsername != null &&
+ mLastTarget.mUsername.length() > 0) {
credentials = OwnCloudCredentialsFactory.newBasicCredentials(
mLastTarget.mUsername,
mLastTarget.mPassword); // basic
- } else if (mLastTarget.mAuthToken != null) {
+ } else if (mLastTarget.mAuthToken != null &&
+ mLastTarget.mAuthToken.length() > 0) {
credentials = OwnCloudCredentialsFactory.newBearerCredentials(
mLastTarget.mAuthToken); // bearer token
- } else if (mLastTarget.mCookie != null) {
+ } else if (mLastTarget.mCookie != null &&
+ mLastTarget.mCookie.length() > 0) {
credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials(
mLastTarget.mCookie); // SAML SSO
}