mirror of
https://github.com/owncloud/android-library.git
synced 2025-06-08 00:16:09 +00:00
make automatic login with session timeout on saml work
This commit is contained in:
parent
f1c6726d30
commit
bd5dc20842
@ -1 +1 @@
|
|||||||
Subproject commit b20c44c63f45355599d4bfaf00042964b9e6cafa
|
Subproject commit 1108048f1a2ff12103cdf6a95307a314d621c088
|
@ -46,6 +46,7 @@ import java.io.InputStream;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import at.bitfire.dav4android.exception.HttpException;
|
import at.bitfire.dav4android.exception.HttpException;
|
||||||
|
import at.bitfire.dav4android.exception.RedirectException;
|
||||||
import okhttp3.Cookie;
|
import okhttp3.Cookie;
|
||||||
import okhttp3.Headers;
|
import okhttp3.Headers;
|
||||||
import okhttp3.HttpUrl;
|
import okhttp3.HttpUrl;
|
||||||
@ -131,16 +132,21 @@ public class OwnCloudClient extends HttpClient {
|
|||||||
|
|
||||||
boolean repeatWithFreshCredentials;
|
boolean repeatWithFreshCredentials;
|
||||||
int repeatCounter = 0;
|
int repeatCounter = 0;
|
||||||
int status;
|
int status = -1;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
try {
|
try {
|
||||||
status = method.execute();
|
status = method.execute();
|
||||||
} catch (HttpException e) {
|
checkFirstRedirection(method);
|
||||||
if(e.getMessage().contains(Integer.toString(HttpConstants.HTTP_MOVED_TEMPORARILY))) {
|
if(mFollowRedirects) {
|
||||||
|
status = followRedirection(method).getLastStatus();
|
||||||
|
}
|
||||||
|
} catch (RedirectException e) {
|
||||||
|
// redirect must be handled twice. Once for dav4droid and once okhttp redirect errors
|
||||||
|
status = e.getStatus();
|
||||||
|
mRedirectedLocation = e.getRedirectLocation();
|
||||||
|
if(mFollowRedirects) {
|
||||||
status = followRedirection(method).getLastStatus();
|
status = followRedirection(method).getLastStatus();
|
||||||
} else {
|
|
||||||
throw e;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,6 +159,14 @@ public class OwnCloudClient extends HttpClient {
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkFirstRedirection(HttpBaseMethod method) {
|
||||||
|
|
||||||
|
final String location = method.getResponseHeader("location");
|
||||||
|
if(location != null && !location.isEmpty()) {
|
||||||
|
mRedirectedLocation = location;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private int executeRedirectedHttpMethod (HttpBaseMethod method) throws Exception {
|
private int executeRedirectedHttpMethod (HttpBaseMethod method) throws Exception {
|
||||||
boolean repeatWithFreshCredentials;
|
boolean repeatWithFreshCredentials;
|
||||||
int repeatCounter = 0;
|
int repeatCounter = 0;
|
||||||
|
@ -47,6 +47,7 @@ public abstract class DavMethod extends HttpBaseMethod {
|
|||||||
mOkHttpClient,
|
mOkHttpClient,
|
||||||
httpUrl
|
httpUrl
|
||||||
);
|
);
|
||||||
|
mDavResource.setFollowRedirects(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DavResource getDavResource() {
|
public DavResource getDavResource() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user