token

zabbix docker-weixin

与世无争的帅哥 提交于 2020-01-07 21:06:03
安装组件 requests 方法一(docker中无pip) pip install requests pip install --upgrade requests 方法二 wget https://pypi.python.org/packages/c3/38/d95ddb6cc8558930600be088e174a2152261a1e0708a18bf91b5b8c90b22/requests-2.18.3.tar.gz tar zxvf requests-2.18.3.tar.gz cd requests-2.18.3 (docker中setup) python setup.py build python setup.py install 下载脚本 (宿主机git:yum install git) git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git chmod +x wechat.py 测试脚本 ./wechat.py www web 123 {u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'} 报警动作 HOST:{HOSTNAME1} Time:{EVENT.DATE} {EVENT.TIME} Severity:{TRIGGER.SEVERITY}

JwtUtils token生成器

早过忘川 提交于 2020-01-07 17:58:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.DecodedJWT; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; import lombok.Data; public class JwtUtils { /** * 密钥 */ private static final String SECRET = "123456"; /** * 过期时间:秒 */ private static final int EXPIRE = 3600; private static String clientId = "clientId"; /** * 生成Token * @param tokenSource * @param expire * @return String *

day 79 三大认证

让人想犯罪 __ 提交于 2020-01-07 08:39:49
目录 三大认证 流程 认证组件 权限组件 频率组件 自定义token的签发 三大认证 流程 由于DRF中, 所有的视图类都要直接和间接继承APIView类, 也只有APIView类中才有dispatch方法, 所以所有的请求都要经过三大认证, 认证通过后执行相应请求的视图函数 Copydef dispatch(self, request, *args, **kwargs): "..." try: # 三大认证 self.initial(request, *args, **kwargs) "..." except Exception as exc: # 异常处理 response = self.handle_exception(exc) def initial(self, request, *args, **kwargs): "..." # 认证 self.perform_authentication(request) # 权限 self.check_permissions(request) # 频率 self.check_throttles(request) 认证组件 请求未携带token ==> 游客 请求携带token token认证通过 ==> 合法用户 token认证未通过 ==> 非法用户 权限组件 游客权限 登录用户权限 频率组件 限制 不限制 认证组件

使用JWT实现Token认证

强颜欢笑 提交于 2020-01-07 08:29:09
为什么使用JWT? 随着技术的发展,分布式web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做登录身份校验,然后通过token去取redis中的缓存的用户信息,随着之后jwt的出现,校验方式更加简单便捷化,无需通过redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录更为简单。 JWT架构图 使用JWT核心代码: maven依赖: <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.7.0</version> </dependency> JWT工具类: 用于生成Token,和Token验证 public class JwtUtils { /** * 签发JWT * @param id * @param subject 可以是JSON数据 尽可能少 * @param ttlMillis * @return String * */ public

Guzzle add CSRF token

不打扰是莪最后的温柔 提交于 2020-01-07 03:41:22
问题 I am trying to create a product in drupal commerce using guzzle and restful webservices. When i am trying to create a new product i use the following process: 1) Login as a user who has the rights to create a product (succes) 2) Request CSRF token (succes) 3) Create product : Uh oh!: Client error response [status code] 401 [reason phrase] Unauthorized: Access to this operation not granted Now when i am doing this process trough poster (Firfox add-on). I can succesfully create a product, but

k8s安装dashboard(未解决)

心不动则不痛 提交于 2020-01-07 00:35:16
第一种,用helm安装 helm repo update Hang tight while we grab the latest from your chart repositories... ...Skip local chart repository ...Successfully got an update from the "stable" chart repository Update Complete. [root@k8s-master templates]# helm repo list NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts [root@k8s-master templates]# helm fetch stable/kubernetes-dashboard [root@k8s-master templates]# ls deployment.yaml kubernetes-dashboard-1.10.1.tgz service.yaml [root@k8s-master templates]# tar -zvxf kubernetes-dashboard-1.10.1.tgz kubernetes

关于JWT分析的文章转载

夙愿已清 提交于 2020-01-06 22:06:17
转载 JWT 超详细分析 本篇文章不讨论 Laravel 中 JWT 这个怎么使用,要这方面内容的可以看我另一篇文章 JWT 完整使用详解 。 在此我要从一个更深的层次来探讨 JWT 在实际运用中的使用以及其优缺点,以及 JWT 和 Oauth 2.0 这两者到底有什么差别和联系。 首先我们从 Token 入手,再联系到 JWT,然后分析 JWT 的优缺点和使用场景,最后再联系到 Oauth2.0。 一、Token token 是一串字符串,通常因为作为鉴权凭据,最常用的使用场景是 API 鉴权。 1. API 鉴权 那么 API 鉴权一般有几种方式呢?我大概整理了如下: cookie + session 和平常 web 登陆一样的鉴权方式,很常见,不再赘述。 HTTP Basic 将账号和密码拼接然后 base64 编码加到 header 头中。很显然,因为账号和密码几乎是『明文』传输的,而且每次请求都传,安全性可想而知。 HTTP Digest 将账号和密码加上其他一些信息拼接然后取摘要加到 header 头中。这个安全性比上面要好一点,因为如果是取摘要的话,即使信息段被截取,也无法轻易破解出来(当然也是有破解的可能)。 不过其实最大的问题还是:每次请求都要对账号、密码取一次摘要,也就是说每次请求都要有账号和密码,也就是说账号和密码要么缓存一下,要么就每次请求要去用户输一次密码

springboot + redis + 注解 + 拦截器 实现接口幂等性校验(转)

帅比萌擦擦* 提交于 2020-01-06 21:59:49
出处:   作者:wangzaiplus    www.jianshu.com/p/6189275403ed 一、概念 幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如: 订单接口, 不能多次创建订单 支付接口, 重复支付同一笔订单只能扣一次钱 支付宝回调接口, 可能会多次回调, 必须处理重复回调 普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次 等等 二、常见解决方案 唯一索引 -- 防止新增脏数据 token机制 -- 防止页面重复提交 悲观锁 -- 获取数据的时候加锁(锁表或锁行) 乐观锁 -- 基于版本号version实现, 在更新数据那一刻校验数据 分布式锁 -- redis(jedis、redisson)或zookeeper实现 状态机 -- 状态变更, 更新数据时判断状态 三、本文实现   本文采用第2种方式实现, 即通过redis + token机制实现接口幂等性校验 四、实现思路 为需要保证幂等性的每一次请求创建一个唯一标识 token , 先获取 token , 并将此 token 存入 redis , 请求接口时, 将此 token 放到 header 或者作为请求参数请求接口, 后端接口判断 redis 中是否存在此 token : 如果存在, 正常处理业务逻辑, 并从 redis 中删除此 token

一文带你了解 OAuth2 协议与 Spring Security OAuth2 集成!

一曲冷凌霜 提交于 2020-01-06 21:43:10
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> OAuth 2.0 允许第三方应用程序访问受限的HTTP资源的授权协议,像平常大家使用 Github 、 Google 账号来登陆其他系统时使用的就是 OAuth 2.0 授权框架,下图就是使用 Github 账号登陆 Coding 系统的授权页面图: 类似使用 OAuth 2.0 授权的还有很多,本文将介绍 OAuth 2.0 相关的概念如:角色、授权类型等知识,以下是我整理一张 OAuth 2.0 授权的脑头,希望对大家了解 OAuth 2.0 授权协议有帮助。 文章将以脑图中的内容展开 OAuth 2.0 协议同时除了 OAuth 2.0 外,还会配合 Spring Security OAuth2 来搭建 OAuth2客户端 ,这也是学习 OAuth 2.0 的目的,直接应用到实际项目中,加深对 OAuth 2.0 和 Spring Security 的理解。 OAuth 2.0 角色 OAuth 2.0 中有四种类型的角色分别为: 资源Owner 、 授权服务 、 客户端 、 资源服务 ,这四个角色负责不同的工作,为了方便理解先给出一张大概的流程图,细节部分后面再分别展开: OAuth 2.0 大概授权流程 资源 Owner 资源 Owner可以理解为一个用户,如之前提到使用 Github 登陆

django项目之配置jwt的token登录2

房东的猫 提交于 2020-01-06 17:16:29
1、安装jwt pip install djangorestframwork-jwt 2、修改配置文件dev.py REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', 'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', ), } import datetime JWT_AUTH = { 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1), # 设置jwt的认证过期时间 } 3、注册路由 from rest_framework_jwt.views import obtain_jwt_token urlpatterns = [ path('login/', obtain_jwt_token), # jwt中提供了一个认证,直接导入后使用obtain_jwt_token视图即可 ] 4、此时可以使用postman 进行接口测试 如上图即,后台接口已经ok 5