token

java幂等性的控制

有些话、适合烂在心里 提交于 2020-03-06 09:58:47
转载:http://m.blog.csdn.net/loveblog1314/article/details/72649809 什么是幂等性 抄用一段数学上的定义:f(f(x)) = f(x)。x被函数f作用一次和作用无限次的结果是一样的。幂等性应用在软件系统中,我把它简单定义为:某个函数或者某个接口使用相同参数调用一次或者无限次,其造成的后果是一样的,在实际应用中一般针对于接口进行幂等性设计。举个栗子,在系统中,调用方A调用系统B的接口进行用户的扣费操作时,由于网络不稳定,A重试了N次该请求,那么不管B是否接收到多少次请求,都应该保证只会扣除该用户一次费用。 加深对幂等性的了解 幂等性一般应用于协议设计,TCP协议支持幂等吗?答案是肯定的,在网络不稳定时,操作系统可以肆无忌惮的重发TCP报文片段。TCP协议能够保证幂等的核心在于sequence number字段,一个序列号的在较长的一段时间内均不会出现重复。对于应用层的协议设计,原理和TCP是类似的,我们需要一个不重复的序列号。再简单一点说,在一个业务流程的处理中,我们需要一个不重复的业务流水号,以保证幂等性。 举个实际应用场景:用户A在网页上发起一笔游戏充值请求,浏览器引导用户去银行支付,支付成功后系统给用户进行充值。 协议设计上,我们通过全局唯一的充值订单号贯穿整个业务流程,使该业务支持幂等。

OAuth2介绍与使用

余生长醉 提交于 2020-03-06 00:24:42
1.什么是OAuth2 OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。 2.应用场景 第三方应用授权登录:在APP或者网页接入一些第三方应用时,时长会需要用户登录另一个合作平台,比如QQ,微博,微信的授权登录。 原生app授权:app登录请求后台接口,为了安全认证,所有请求都带token信息,如果登录验证、请求后台数据。 前后端分离单页面应用(spa):前后端分离框架,前端请求后台数据,需要进行oauth2安全认证,比如使用vue、react后者h5开发的app。 3.名词定义 (1) Third-party application:第三方应用程序,本文中又称"客户端"(client),比如打开知乎,使用第三方登录,选择qq登录,这时候知乎就是客户端。 (2)HTTP service:HTTP服务提供商,本文中简称"服务提供商",即上例的qq。 (3)Resource Owner:资源所有者,本文中又称"用户"(user),即登录用户。 (4)User Agent:用户代理,本文中就是指浏览器。 (5)Authorization server:认证服务器

使用kubeadm部署Kubernetes1.8.5

孤人 提交于 2020-03-05 23:29:42
在完成 科学上网 的前提下,我们准备使用kubeadm通过http代理部署Kubernetes。 环境准备(在所有节点上执行) hostname IP 作用 k8s-master 172.16.100.50 master/etcd k8s-node1 172.16.100.51 node k8s-node2 172.16.100.52 node 关闭swap 由于Kubernetes1.8之后需要关闭swap,否则将会出现如下报错: running with swap on is not supported. Please disable swap # swapoff -a # sed -i '/swap/d' /etc/fstab 配置http代理 由于kubeadm init时需要访问google的网站,如果不科学上网将会出现如下报错: unable to get URL "https://dl.k8s.io/release/stable-1.8.txt": Get https://storage.googleapis.com/kubernetes-release/release/stable-1.8.txt: dial tcp 172.217.160.112:443: i/o timeout # vi ~/.profile export http_proxy="http:/

10分钟搭建Kubernetes容器集群平台(kubeadm)

拜拜、爱过 提交于 2020-03-05 23:29:37
官方提供Kubernetes部署3种方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。 官方文档: https://kubernetes.io/docs/setup/minikube/ kubeadm kubeadm可帮助你快速部署一套kubernetes集群。kubeadm设计目的为新用户开始尝试kubernetes提供一种简单的方法。目前是Beta版。 官方文档: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/ https://kubernetes.io/docs/setup/independent/install-kubeadm/ 二进制包 从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。目前企业生产环境中主要使用该方式。 下载地址: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#v1113 1. 安装要求 操作系统 Ubuntu 16.04+ Debian 9 CentOS 7 RHEL 7 Fedora 25/26 (best-effort) 其他

kubeadm安装1.9版本

蹲街弑〆低调 提交于 2020-03-05 23:28:00
kubernetes 1.9.0 kubeadm方式安装 1、安装rpm包 yum localinstall -y kubeadm-1.9.0-0.x86_64.rpm kubectl-1.9.0-0.x86_64.rpm kubelet-1.9.0-0.x86_64.rpm kubernetes-cni-0.6.0-0.x86_64.rpm 2、修改内核参数 修改 /etc/sysctl.conf,添加以下内容 net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 修改后,及时生效 sysctl -p 3、修改kubelet配置文件 kubelet和docker 的cgroup driver 有2种方式:cgroupfs和systemd.注意保持 2个应用的driver保持一致。 3.1 docker是cgroupfs的,修改kubelet vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf #修改systemd为cgroupfs Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs" #新加一行

flask 和django使用Pyjwt验证

无人久伴 提交于 2020-03-05 23:09:20
JSON Web Tokens,是一种开发的行业标准 RFC 7519 ,用于安全的表示双方之间的声明。目前,jwt广泛应用在系统的用户认证方面,特别是现在前后端分离项目。 jwt方式 用户登录成功后,服务端通过jwt生成一个随机token给用户(服务端无需保留token),以后用户再来访问时需携带token,服务端接收到token之后,通过jwt对token进行校验是否超时、是否合法。 一、 jwt创建token JWT原理 jwt的生成token格式如下,即:由 . 连接的三段字符串组成 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c 生成规则如下: 第一段HEADER部分,固定包含算法和token类型,对此json进行base64url加密,这就是token的第一段。 { "alg": "HS256", "typ": "JWT" } 第二段PAYLOAD部分,包含一些数据,对此json进行base64url加密,这就是token的第二段 { "sub": "1234567890", "name": "John Doe

快速上手百度大脑EasyDL专业版·物体检测模型(附代码)

霸气de小男生 提交于 2020-03-05 13:00:52
作者:才能我浪费99 1. 简介 : 1.1. 什么是EasyDL专业版 EasyDL专业版是EasyDL在2019年10月下旬全新推出的针对AI初学者或者AI专业工程师的企业用户及开发者推出的AI模型训练与服务平台,目前支持视觉及自然语言处理两大技术方向,内置百度海量数据训练的预训练模型,可灵活脚本调参,只需少量数据可达到优模型效果。 适用人群: 专业AI工程师且追求灵活、深度调参的企业或个人开发者 支持定制模型类型。 1.2. 支持视觉及自然语言处理两大技术方向: 视觉:支持图像分类及物体检测两类模型训练。 任务类型: 预置算法 图像分类: Resnet(50,101)、Se_Resnext(50,101)、Mobilenet Nasnet 物体检测: FasterRCNN、YoloV3、mobilenetSSD 自然语言处理:支持文本分类及短文本匹配两类模型训练,内置百度百亿级数据所训练出的预训练模型ENNIE. ERNIE(艾尼)是百度自研持续学习语义理解框架,该框架可持续学习海量数据中的知识。基于该框架的ERNIE2.0预训练模型,已累计学习10亿多知识,中英文效果全面领先,适用于各类NLP应用场景。 任务类型 :预置网络 文本分类: BOW、CNN、GRU、TextCNN、LSTM、BiLSTM 短文本匹配:SimNet(BOW、CNN、GRU、LSTM)、FC 1.3

【SEU&SE】编译原理 - 词法分析器

一曲冷凌霜 提交于 2020-03-05 08:04:17
README 该源码仅供参考,严禁直接抄袭! 源码如下 // // main.cpp // LexicalAnalyzer // // Created by 胡昱 on 2020/1/1. // Copyright © 2020年 胡昱. All rights reserved. // # include <iostream> # include <fstream> # include <vector> # include <string> using namespace std ; /*****************全局变量*****************/ /*****************关键字表*****************/ const static string reserveWords [ ] = { "main" , "if" , "else" , "while" , "do" , "for" , "int" , "double" , "float" , "char" , "long" , "short" , "enum" , "static" , "bool" , "void" , "switch" , "case" , "break" , "continue" , "signed" , "unsigned" , "return" , "defalut"

自建免费图床, 免费资源利用 onedriver api 自建图床

僤鯓⒐⒋嵵緔 提交于 2020-03-04 18:55:48
免费图床, 都推荐的比较稳定的 推荐看 这里, 已经总结了 免费图床点这里 用别人的不放心, 对接api 不灵活, 自己需求主要也是做站 提供一个思路, 使用onedriver 或 google driver api 自建免费图床 cocook免费图床 要求, 当然要回简单的编码, 是什么语言无所谓 有服务器, 最基础配置就行了 看懂 oneDriver api, 现在老的api授权已经不好用, 推荐直接用最新的 建立 注册clintid 地址 注册点这里 api 地址, 主要是 授权(使用auth2 最新版) 上传 下载 api点这里 由于 微软大厂, api太多, 也花费了 两天时间 才对接完成, 建议使用最新的api 下面 介绍一下 具体的 流程 1. 授权 auth2, 授权地址, 中文叫什么 终结点url, 看这个就知道了 注意 scope 权限 , redirect_uri 授权成功跳转地址, 获取code, 所有的 auth2 都是这个流程 public String getAuthUrl(Map<String, String> params0){ String url = Constants.get("login_url") +"/authorize"; url += "?client_id=" + Constants.get("client_id"); url +

CSRF漏洞之——漏洞复现

核能气质少年 提交于 2020-03-04 17:22:59
介绍 CSRF(Cross Site Request Forgery, 跨站请求伪造)是一种网络的攻击方式,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF CSRF漏洞是因为web应用程序在用户进行敏感操作时,如修改账号密码、添加账号、转账等,没有校验表单token或者http请求头中的referer值,从而导致恶意攻击者利用普通用户的身份(cookie)完成攻击行为 原理 用户访问a网址,在a网址的cookie有效期内,又访问了b网址,b网站里含有对a网址进行恶意请求的代码,由于此时a网址的cookie没有过期,所以对不会对这个恶意请求进行过滤 一次CSRF攻击的过程中,受害者需要依次完成两个步骤 1.登录受信任网站A,并在本地生成Cookie 2.在A的cookie存活期内,访问危险网站B CSRF高危触发点 论坛交流、用户中心、反馈留言、交易管理、后台管理 漏洞出现在论坛交流,或者是个人用户中心和反馈留言这些常规的功能处,会造成隐私的泄露; 漏洞发生在交易管理功能的页面,此时可以进行一些类似转账或者是购买物品的操作,那么用户的资产便会存在安全隐患; 漏洞发生在后台管理的功能处,则会威胁到网站本身的安全性。 漏洞危害 CSRF漏洞会导致受害人在不知情的情况下向论坛发帖子、订阅邮件列表、网购或股票交易