|
@@ -24,17 +24,13 @@ import java.security.cert.CertificateException;
|
|
|
import java.security.cert.CertificateFactory;
|
|
|
import java.security.cert.X509Certificate;
|
|
|
|
|
|
-import android.app.AlertDialog;
|
|
|
-import android.app.AlertDialog.Builder;
|
|
|
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.text.InputType;
|
|
|
import android.view.KeyEvent;
|
|
|
import android.view.View;
|
|
|
import android.webkit.CookieManager;
|
|
@@ -43,11 +39,7 @@ import android.webkit.SslErrorHandler;
|
|
|
import android.webkit.WebResourceResponse;
|
|
|
import android.webkit.WebView;
|
|
|
import android.webkit.WebViewClient;
|
|
|
-import android.widget.EditText;
|
|
|
-import android.widget.LinearLayout;
|
|
|
-import android.widget.Toast;
|
|
|
|
|
|
-import com.owncloud.android.R;
|
|
|
import com.owncloud.android.lib.common.network.NetworkUtils;
|
|
|
import com.owncloud.android.utils.Log_OC;
|
|
|
|
|
@@ -75,7 +67,6 @@ public class SsoWebViewClient extends WebViewClient {
|
|
|
private String mTargetUrl;
|
|
|
private String mLastReloadedUrlAtError;
|
|
|
|
|
|
- private boolean mIsFirstAttempt;
|
|
|
|
|
|
public SsoWebViewClient (Context context, Handler listenerHandler, SsoWebViewClientListener listener) {
|
|
|
mContext = context;
|
|
@@ -83,7 +74,6 @@ public class SsoWebViewClient extends WebViewClient {
|
|
|
mListenerRef = new WeakReference<SsoWebViewClient.SsoWebViewClientListener>(listener);
|
|
|
mTargetUrl = "fake://url.to.be.set";
|
|
|
mLastReloadedUrlAtError = null;
|
|
|
- mIsFirstAttempt = true;
|
|
|
}
|
|
|
|
|
|
public String getTargetUrl() {
|
|
@@ -207,13 +197,7 @@ public class SsoWebViewClient extends WebViewClient {
|
|
|
public void onReceivedHttpAuthRequest (WebView view, HttpAuthHandler handler, String host, String realm) {
|
|
|
Log_OC.d(TAG, "onReceivedHttpAuthRequest : " + host);
|
|
|
|
|
|
- createAuthenticationDialog(view, handler);
|
|
|
-
|
|
|
- if (!mIsFirstAttempt) {
|
|
|
- Toast.makeText(mContext, mContext.getText(R.string.saml_authentication_wrong_pass), Toast.LENGTH_LONG).show();
|
|
|
- } else {
|
|
|
- mIsFirstAttempt = false;
|
|
|
- }
|
|
|
+ ((AuthenticatorActivity)mContext).showAuthenticationDialog(view, handler);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -248,60 +232,4 @@ public class SsoWebViewClient extends WebViewClient {
|
|
|
Log_OC.d(TAG, "shouldOverrideKeyEvent : " + event);
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
- * Create dialog for request authentication to the user
|
|
|
- * @param webView
|
|
|
- * @param handler
|
|
|
- */
|
|
|
- private void createAuthenticationDialog(WebView webView, HttpAuthHandler handler) {
|
|
|
- final WebView mWebView = webView;
|
|
|
- final HttpAuthHandler mHandler = handler;
|
|
|
-
|
|
|
- // Create field for username
|
|
|
- final EditText usernameET = new EditText(mContext);
|
|
|
- usernameET.setHint(mContext.getText(R.string.auth_username));
|
|
|
-
|
|
|
- // Create field for password
|
|
|
- final EditText passwordET = new EditText(mContext);
|
|
|
- passwordET.setHint(mContext.getText(R.string.auth_password));
|
|
|
- passwordET.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
|
|
-
|
|
|
- // Prepare LinearLayout for dialog
|
|
|
- LinearLayout ll = new LinearLayout(mContext);
|
|
|
- ll.setOrientation(LinearLayout.VERTICAL);
|
|
|
- ll.addView(usernameET);
|
|
|
- ll.addView(passwordET);
|
|
|
-
|
|
|
- Builder authDialog = new AlertDialog
|
|
|
- .Builder(mContext)
|
|
|
- .setTitle(mContext.getText(R.string.saml_authentication_required_text))
|
|
|
- .setView(ll)
|
|
|
- .setCancelable(false)
|
|
|
- .setPositiveButton(mContext.getText(R.string.common_ok),
|
|
|
- new DialogInterface.OnClickListener() {
|
|
|
- public void onClick(DialogInterface dialog, int whichButton) {
|
|
|
-
|
|
|
- String username = usernameET.getText().toString().trim();
|
|
|
- String password = passwordET.getText().toString().trim();
|
|
|
-
|
|
|
- // Proceed with the authentication
|
|
|
- mHandler.proceed(username, password);
|
|
|
- dialog.dismiss();
|
|
|
- }
|
|
|
- })
|
|
|
- .setNegativeButton(mContext.getText(R.string.common_cancel),
|
|
|
- new DialogInterface.OnClickListener() {
|
|
|
- public void onClick(DialogInterface dialog, int whichButton) {
|
|
|
- dialog.dismiss();
|
|
|
- mWebView.stopLoading();
|
|
|
- mIsFirstAttempt = true;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- if (mWebView!=null) {
|
|
|
- authDialog.show();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
}
|