import org.apache.commons.httpclient.Credentials;
import com.owncloud.android.Log_OC;
-import com.owncloud.android.authentication.AccountAuthenticator;
+import com.owncloud.android.MainApp;
import com.owncloud.android.network.BearerCredentials;
import com.owncloud.android.network.OwnCloudClientUtils;
import com.owncloud.android.operations.RemoteOperationResult.ResultCode;
+
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountsException;
repeat = false;
if (mCallerActivity != null && mAccount != null && mContext != null && !result.isSuccess() &&
- (result.getCode() == ResultCode.UNAUTHORIZED || result.isTemporalRedirection())) {
+// (result.getCode() == ResultCode.UNAUTHORIZED || (result.isTemporalRedirection() && result.isIdPRedirection()))) {
+ (result.getCode() == ResultCode.UNAUTHORIZED || result.isIdPRedirection())) {
/// possible fail due to lack of authorization in an operation performed in foreground
Credentials cred = mClient.getCredentials();
String ssoSessionCookie = mClient.getSsoSessionCookie();
boolean bearerAuthorization = (cred != null && cred instanceof BearerCredentials);
boolean samlBasedSsoAuthorization = (cred == null && ssoSessionCookie != null);
if (bearerAuthorization) {
- am.invalidateAuthToken(AccountAuthenticator.ACCOUNT_TYPE, ((BearerCredentials)cred).getAccessToken());
+ am.invalidateAuthToken(MainApp.getAccountType(), ((BearerCredentials)cred).getAccessToken());
} else if (samlBasedSsoAuthorization ) {
- am.invalidateAuthToken(AccountAuthenticator.ACCOUNT_TYPE, ssoSessionCookie);
+ am.invalidateAuthToken(MainApp.getAccountType(), ssoSessionCookie);
} else {
am.clearPassword(mAccount);
}