HttpAuth是什么

HttpAuth是比较早的http的验证的一个方案

认证过程通过http协议来完成

WebView如何支持

HttpAuth本身是Http协议来支持,在Http的头有标记

WebView会有回调来方便客户端自己来自定义实现弹出框

WebView的内部类WebViewClient中的回调方法onReceivedHttpAuthRequest

WebView端实现

实现1,从url中根据规则获取用户名密码,自动填充,进行验证

url中没有用户名密码,实现弹窗,用户输入用户名密码后,根据填充内容进行验证

@Override

public void onReceivedHttpAuthRequest(WebView view,

final HttpAuthHandler handler, final String host,

final String realm) {

String username = null;

String password = null;

boolean reuseHttpAuthUsernamePassword = handler

.useHttpAuthUsernamePassword();

if (reuseHttpAuthUsernamePassword && view != null) {

String[] credentials = view.getHttpAuthUsernamePassword(host,

realm);

if (credentials != null && credentials.length == 2) {

username = credentials[0];

password = credentials[1];

}

}

if (username != null && password != null) {

handler.proceed(username, password);

} else {

if (isActive()) {

showHttpAuthentication(handler, host, realm, null, null,

null, 0);

} else {

handler.cancel();

}

}

}

httpAuth测试代码实现

使用flask完成最小httpauth原型

使用定义好的webview访问flask完成实现

浏览器上访问http://127.0.0.1:5000 可以弹出对话框说明实现完毕

#!/usr/bin/env python

# coding: utf-8

from functools import wraps

from flask import request, Response, Flask

def check_auth(username, password):

"""This function is called to check if a username /

password combination is valid.

"""

return username == 'admin' and password == 'secret'

def authenticate():

"""Sends a 401 response that enables basic auth"""

return Response(

'Could not verify your access level for that URL.\n'

'You have to login with proper credentials', 401,

{'WWW-Authenticate': 'Basic realm="Login Required"'})

def requires_auth(f):

@wraps(f)

def decorated(*args, **kwargs):

auth = request.authorization

if not auth or not check_auth(auth.username, auth.password):

return authenticate()

return f(*args, **kwargs)

return decorated

app = Flask(__name__)

@app.route('/secret-page')

@requires_auth

def secret_page():

return 'secret_page'

if __name__ == '__main__':

app.run(host="0.0.0.0",debug=True)

android auth认证,Android Webview中支持HttpAuth相关推荐

  1. android 清除cookie,Android 获取和清除 WebView 中的 Cookie

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 项目中如果用到了 WebView,那就免不了跟 Cookie 打交道. 比如,你时常需要判断用户的登录状态,如果用户未登 ...

  2. Android实战场景 - 保存WebView中的图片到相册

    去年同事写了一个 "在H5中保存图片到相册" 的功能,虽然有大致实现思路,实现起来也没问题,但是感觉同事考虑问题的很周全,当时候就想着去学习一下,但是项目太赶没顾得上,索性现在有时 ...

  3. Android安全开发之WebView中的地雷

    0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等.WebView功能强大 ...

  4. Android安全开发之WebView中的地雷 1

    0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等.WebView功能强大 ...

  5. Android变量longpress,Android:在自定义WebView中从onLongPress打开ContextMenu

    我目前正在尝试获取一个自定义WebView,当它被按下较长时间时会显示一个ContextMenu.由于默认WebView类仅在链接为longPressed时显示ContextMenu,因此我编写了自己 ...

  6. Android使用Chrome调试webview中的H5界面

    前言:我们的项目是使用的webview加载H5的应用类型,最近框架升级后项目出现问题.通过chrome进行调试,发现每次都忘记使用步骤.今天记录一下! 下面是调试步骤: 1.电脑下载的Chrom浏览器 ...

  7. android笔记之在WebView中显示ProgressBar的两种方法

    http://blog.csdn.net/liuzhidong123/article/details/6450334 本文基于Creative Commons Attribution 2.5 Chin ...

  8. android 调用java类_Android中在WebView里实现Javascript调用Java类的方法

    搜索热词 为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制.只要调用addJavascriptInterface方法 ...

  9. 软键盘挡住WebView中输入框解决方法

    如果是EditText,弹出软键盘好处理,会自动把输入框顶上来. 但如果输入框实在WebView中,那就不好处理了. 什么设置android:windowSoftInputMode属性啊,什么套一层S ...

最新文章

  1. WinDbg安装与使用
  2. vscode jsx html补全,VScode设置jsx语法自动补全
  3. linux chown 函数用噶,chown - Linux C 函数 使用手册
  4. 【Java】不需要正则表达式,提取字符串中的所有汉字、数字、字母
  5. buck电路 dac stm32_STM32定时器学习---基本定时器
  6. 通过yum安装Nagios
  7. linux服务器之间做ssh,Linux 服务器之间怎么样 SSH 不需密码
  8. Easy Data Transform如何在Excel中删除重复的行?
  9. OpenCV-Python教程(5、初级滤波内容)
  10. JavaEE笔记:第十九次课之AJAX
  11. 歌单音乐播放器php源码,thinkphp多风格网页音乐播放器源码
  12. Qt开发 之 抓取崩溃信息(读这一篇就够了)
  13. 编程题(买帽子求第三便宜价格)
  14. 各大EMM厂商功能比较 第三部分 Network Gateway比较
  15. 基于spring boot的婚纱摄影约拍系统
  16. friends第九季看完了,经典对白记录--gt;对婚姻有阴影的男人
  17. Dispatcher has no subscribers for channel排坑指南
  18. 爱车人士必知的一些保养爱车的常识
  19. 文科生读计算机博士,文科类哪些专业博士前景好?看完这篇就懂了!
  20. mos管散热,功率,电流参数关联

热门文章

  1. Socket 编程原理
  2. 我用宅兔APP月躺赚万元
  3. Java Web项目结构(idea)——项目命名规范——idea包层级结构设置
  4. 重载和重写的区别有哪些?
  5. XShell有啥放不下?选择完全免费的SSH 客户端才超酷的,好吗?
  6. 厉害了!用“Pandas”现在也可以绘制交互式的图形了!
  7. linux centos网卡配置,Linux之Centos配置网卡信息
  8. cmd命令删除文件和文件夹
  9. 数据库高并发的处理方法
  10. stressapptest memtester