X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/8e1a2573b9812fba2c5d6f965524ea1f53411238..45bc02fbe527ab9b19b806438af7aa828bd54af2:/src/com/owncloud/android/authentication/SsoWebViewClient.java diff --git a/src/com/owncloud/android/authentication/SsoWebViewClient.java b/src/com/owncloud/android/authentication/SsoWebViewClient.java index 587c33e7..e498d0d8 100644 --- a/src/com/owncloud/android/authentication/SsoWebViewClient.java +++ b/src/com/owncloud/android/authentication/SsoWebViewClient.java @@ -24,22 +24,21 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; -import com.owncloud.android.R; import com.owncloud.android.lib.common.network.NetworkUtils; +import com.actionbarsherlock.app.SherlockFragmentActivity; +import com.owncloud.android.R; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog; +import com.owncloud.android.ui.dialog.SslUntrustedCertDialogABSTRACT; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener; import com.owncloud.android.utils.Log_OC; -import android.app.AlertDialog; import android.content.Context; -import android.content.DialogInterface; import android.graphics.Bitmap; import android.net.http.SslCertificate; import android.net.http.SslError; import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.KeyEvent; @@ -61,11 +60,9 @@ import android.webkit.WebViewClient; * * @author David A. Velasco */ -public class SsoWebViewClient extends WebViewClient implements OnSslUntrustedCertListener { +public class SsoWebViewClient extends WebViewClient { private static final String TAG = SsoWebViewClient.class.getSimpleName(); - - public final static String DIALOG_UNTRUSTED_CERT = "UNTRUSTED CERT"; public interface SsoWebViewClientListener { public void onSsoFinished(String sessionCookie); @@ -160,27 +157,31 @@ public class SsoWebViewClient extends WebViewClient implements OnSslUntrustedCer Log_OC.d(TAG, "onReceivedSslError : " + error); // Test 1 X509Certificate x509Certificate = getX509CertificateFromError(error); - boolean isKnowServer = false; + boolean isKnownServer = false; if (x509Certificate != null) { Log_OC.d(TAG, "------>>>>> x509Certificate " + x509Certificate.toString()); try { - isKnowServer = NetworkUtils.isCertInKnownServersStore((Certificate) x509Certificate, mContext); + isKnownServer = NetworkUtils.isCertInKnownServersStore((Certificate) x509Certificate, mContext); } catch (Exception e) { Log_OC.e(TAG, "Exception: " + e.getMessage()); } } - if (isKnowServer) { + if (isKnownServer) { handler.proceed(); - } else { + } else if (x509Certificate != null) { // Show a dialog with the certificate info - SslUntrustedCertDialog dialog = SslUntrustedCertDialog.newInstance(mContext, x509Certificate, this, handler); - FragmentManager fm = ((FragmentActivity)mContext).getSupportFragmentManager(); - FragmentTransaction ft = fm.beginTransaction(); - dialog.show(ft, DIALOG_UNTRUSTED_CERT); + ((AuthenticatorActivity)mContext).showUntrustedCertDialog(x509Certificate, error); handler.cancel(); + } else { + // Show a dialog with the certificate information available in SslError (not full) + SslUntrustedCertDialogABSTRACT dialog = SslUntrustedCertDialogABSTRACT.newInstanceForEmptySslError(error, handler); + FragmentManager fm = ((SherlockFragmentActivity)mContext).getSupportFragmentManager(); + FragmentTransaction ft = fm.beginTransaction(); + dialog.show(ft, AuthenticatorActivity.DIALOG_UNTRUSTED_CERT); + // let's forward the handler, and see what happens... } } @@ -245,19 +246,4 @@ public class SsoWebViewClient extends WebViewClient implements OnSslUntrustedCer return false; } - @Override - public void onFailedSavingCertificate() { - AlertDialog.Builder builder = new AlertDialog.Builder(mContext); - builder.setMessage(mContext.getString(R.string.ssl_validator_not_saved)); - builder.setCancelable(false); - builder.setPositiveButton(R.string.common_ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - }; - }); - builder.create().show(); - - } - }