android auth认证,Android Webview中支持HttpAuth
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相关推荐
- android 清除cookie,Android 获取和清除 WebView 中的 Cookie
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 项目中如果用到了 WebView,那就免不了跟 Cookie 打交道. 比如,你时常需要判断用户的登录状态,如果用户未登 ...
- Android实战场景 - 保存WebView中的图片到相册
去年同事写了一个 "在H5中保存图片到相册" 的功能,虽然有大致实现思路,实现起来也没问题,但是感觉同事考虑问题的很周全,当时候就想着去学习一下,但是项目太赶没顾得上,索性现在有时 ...
- Android安全开发之WebView中的地雷
0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等.WebView功能强大 ...
- Android安全开发之WebView中的地雷 1
0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等.WebView功能强大 ...
- Android变量longpress,Android:在自定义WebView中从onLongPress打开ContextMenu
我目前正在尝试获取一个自定义WebView,当它被按下较长时间时会显示一个ContextMenu.由于默认WebView类仅在链接为longPressed时显示ContextMenu,因此我编写了自己 ...
- Android使用Chrome调试webview中的H5界面
前言:我们的项目是使用的webview加载H5的应用类型,最近框架升级后项目出现问题.通过chrome进行调试,发现每次都忘记使用步骤.今天记录一下! 下面是调试步骤: 1.电脑下载的Chrom浏览器 ...
- android笔记之在WebView中显示ProgressBar的两种方法
http://blog.csdn.net/liuzhidong123/article/details/6450334 本文基于Creative Commons Attribution 2.5 Chin ...
- android 调用java类_Android中在WebView里实现Javascript调用Java类的方法
搜索热词 为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制.只要调用addJavascriptInterface方法 ...
- 软键盘挡住WebView中输入框解决方法
如果是EditText,弹出软键盘好处理,会自动把输入框顶上来. 但如果输入框实在WebView中,那就不好处理了. 什么设置android:windowSoftInputMode属性啊,什么套一层S ...
最新文章
- WinDbg安装与使用
- vscode jsx html补全,VScode设置jsx语法自动补全
- linux chown 函数用噶,chown - Linux C 函数 使用手册
- 【Java】不需要正则表达式,提取字符串中的所有汉字、数字、字母
- buck电路 dac stm32_STM32定时器学习---基本定时器
- 通过yum安装Nagios
- linux服务器之间做ssh,Linux 服务器之间怎么样 SSH 不需密码
- Easy Data Transform如何在Excel中删除重复的行?
- OpenCV-Python教程(5、初级滤波内容)
- JavaEE笔记:第十九次课之AJAX
- 歌单音乐播放器php源码,thinkphp多风格网页音乐播放器源码
- Qt开发 之 抓取崩溃信息(读这一篇就够了)
- 编程题(买帽子求第三便宜价格)
- 各大EMM厂商功能比较 第三部分 Network Gateway比较
- 基于spring boot的婚纱摄影约拍系统
- friends第九季看完了,经典对白记录--gt;对婚姻有阴影的男人
- Dispatcher has no subscribers for channel排坑指南
- 爱车人士必知的一些保养爱车的常识
- 文科生读计算机博士,文科类哪些专业博士前景好?看完这篇就懂了!
- mos管散热,功率,电流参数关联