intercept

mybatis源码学习:插件定义+执行流程责任链

安稳与你 提交于 2020-04-27 15:20:12
目录 一、自定义插件流程 二、测试插件 三、源码分析 1、inteceptor在Configuration中的注册 2、基于责任链的设计模式 3、基于动态代理的plugin 4、拦截方法的intercept(invocation) 四、插件开发插件pagehelper 1、引入相关依赖 2、全局配置 3、测试分页 五、插件总结 前文传送门: mybatis源码学习:从SqlSessionFactory到代理对象的生成 mybatis源码学习:一级缓存和二级缓存分析 mybatis源码学习:基于动态代理实现查询全过程 一、自定义插件流程 自定义插件,实现Interceptor接口。 实现intercept、plugin和setProperties方法。 使用@Intercepts注解完成插件签名。 在主配置文件注册插件。 /** * 自定义插件 * Intercepts:完成插件签名,告诉mybatis当前插件拦截哪个对象的哪个方法 * * @author Summerday */ @Intercepts({ @Signature(type = StatementHandler.class, method = "parameterize", args = Statement.class) }) public class MyPlugin implements Interceptor

个人学习记录-常用抓包工具/技术的总结

北战南征 提交于 2020-04-27 05:36:21
个人学习记录-常用抓包工具/技术的总结 - 杨文的文章 - 知乎 https://zhuanlan.zhihu.com/p/25804326 注:这篇文章只是我学习的一个记录,有些东西可能写的不好或者写的不对,请见谅。就当是一个学习过程分享吧。朋友们有更好的见解或者思路的话,评论给我,学习学习。 1.文章内记录的网络协议种类 *http *https *tcp 2.三种协议的详细介绍 *http 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。 由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 *https https以安全为目标的HTTP通道,简单讲是HTTP的安全版

信息安全铁人三项赛--资质赛writeup

回眸只為那壹抹淺笑 提交于 2020-04-27 02:55:48
<span id = "jump0">[博客目录]</span> 工具 Burp Suite stegsolve.jar 十六进制编辑器 赛题 第一题 第二题 第三题 第四题 第五题 第六题 ##<span id = "jump0">1- 工具: ###<span id = "jump1-1">1.1- Burp Suite</span> 一款可以进行再WEB应用程序的集成攻击测试平台。 常用的功能:抓包、重放、爆破 需求:(建议)Burp Suite + Firefox 介绍: Burp Suite使用介绍 代理设置+证书导入: Firefox+Burpsuite抓包配置(可抓取https) 使用方法: Burpsuite神器常用功能使用方法总结 Burpsuite中爆破功能的使用教程 Burpsuite教程与技巧之HTTP brute暴力破解 用Burpsuite破解网站密码 ###<span id = "jump1-2">1.2- stegsolve.jar</span> 下载&使用 ###<span id = "jump1-3">1.3- 十六进制编辑器</span> 自己上网找吧! 返回目录 ##<span id = "jump2">2- 赛题</span> <span id = "jump2-1">2.1 第一题:你是管理员吗?</span> 题目链接: http:/

Burpsuite Professional安装及使用教程

北城余情 提交于 2020-04-27 02:30:28
转自: https://www.jianshu.com/p/edbd68d7c341 1、先从吾爱破解论坛下载工具: https://down.52pojie.cn/Tools/Network_Analyzer/Burp_Suite_Pro_v1.7.37_Loader_Keygen.zip 工具运行需要 Java环境,请自行安装,此处不赘述。 解压完成后右击 burp-loader-keygen.jar,以Java(TM) Platform SE binary的方式打开keygen 2、修改License Text为任意值 3、点击run启动burpsuite 4、如果上述方式没有成功启动burpsuite,打开cmd,进入burp-loader-keygen.jar所在目录,执行命令:java -Xbootclasspath/p:burp-loader-keygen.jar -jar burpsuite_pro_v1.7.37.jar 5、打开burpsuite成功 6、将Keygen中License复制粘贴到burpsuite中 点击 Next 7、然后点击Manual activation 8、点击Copy request 9、 点击 Copy request,复制完成之后,将字符串粘贴到keygen的Activation Request框里,然后Activation

[转]Firefox+Burpsuite抓包配置(可抓取https)

泄露秘密 提交于 2020-04-27 02:29:02
0x00 以前一直用的是火狐的autoproxy代理插件配合burpsuite抓包 但是最近经常碰到开了代理却抓不到包的情况 就换了Chrome的 SwitchyOmega插件抓包 但是火狐不能抓包的问题一直很纠结 今天早上看了一下文章 终于解决了这个问题 0x01 环境配置 burpsuite 1.7.11 firefox 54.0.1(32位) 0x02 1. firefox代理设置 不用下载别的插件 就用火狐本身的代理设置 选项 ---> 高级 --->网络 这样配置就好了 默认的不使用代理包括localhost和127.0.0.1 需要把他们去掉不然本地的包就抓不到了 2. firefox的证书设置 在firefox的url栏输入 http://burp 点击 CA Certificate 下载证书 然后在导入证书 选项 ---> 高级 --->证书 --->查看证书 点击导入 然后找到刚刚下载的证书 打开 勾选第一个 信任使用该CA标志的网站 然后点击确定 就导入成功了 3. burpsuite的设置 用默认的就好了 或者和刚刚代理设置额一样 这样就算设置好了 可以抓包了 0x03 使用: 因为是直接给浏览器本身设置了固定代理 所以是一直开着的 不像autoproxy可以开关 他会一直抓取数据包 但是如果把burp里的intercept选项变成off 就不会截取数据包

andorid jar/库源码解析之okhttp3

吃可爱长大的小学妹 提交于 2020-04-26 16:01:26
目录: andorid jar/库源码解析 Okhttp3:   作用:      用于网络编程(http,https)的快速开发。   栗子: // okHttpClient定义成全局静态,或者单例,不然重复new可能导致连接数耗尽 OkHttpClient okHttpClient = new OkHttpClient(); String url = "https://www.test.com" ; byte [] data = new byte [] { 1 }; okhttp3.RequestBody body = okhttp3.RequestBody.create(MediaType.parse("application/octet-stream" ), data); // Request Request request = new Request.Builder().addHeader("Authorization", "Bearer XXXXXXXX" ).url(url).post(body).build(); // Response Response response = okHttpClient.newBuilder().build().newCall(request).execute(); // 注意:这里是string不是toString final

Springboot集成BeanValidation扩展二:加载jar中的资源文件

痴心易碎 提交于 2020-04-25 05:37:50
一、需求 今天在搭建Springboot框架的时候,又遇到一个需求:在多模块系统中,有些模块想自己管理BeanValidation的资源文件(默认是启动项目claspath下的 ValidationMessages.properties)。刚开始还天真地认为springboot会不会帮我们做了,结果并没有,于是就是撸源码了。 以下是我的实现和实现原理 二、实现 @Configuration public class MyWebMvcConfigurer implements WebMvcConfigurer { /** * 当有异常时返回默认的验证器 * @return 返回的是org.springframework.validation.Validator,不是javax.validation.Validator * 所以返回时要适配一下 */ @Override public Validator getValidator() { //路径匹配 PathMatchingResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver( MyWebMvcConfigurer.class.getClassLoader()); try { //匹配属性文件,有个限制

Spark排序算法系列之(MLLib、ML)LR使用方式介绍

為{幸葍}努か 提交于 2020-04-24 23:05:21
转载: http://thinkgamer.cn/2019/05/07/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/Spark%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95%E7%B3%BB%E5%88%97%E4%B9%8B%EF%BC%88MLLib%E3%80%81ML%EF%BC%89LR%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F%E4%BB%8B%E7%BB%8D/ 【Spark排序算法系列】主要介绍的是目前推荐系统或者广告点击方面用的比较广的几种算法,和他们在Spark中的应用实现,本篇文章主要介绍LR算法。 本系列还包括(持续更新): Spark排序算法系列之GBDT(梯度提升决策树) Spark排序算法系列之模型融合(GBDT+LR) Spark排序算法系列之XGBoost Spark排序算法系列之FTRL(Follow-the-regularized-Leader) Spark排序算法系列之FM与FFM 背景 逻辑回归(Logistic Regression,LR)是较早应用在推荐排序上的,其属于线性模型,模型简单,可以引入海量离散特征,这样的好处就是模型可以考虑更加细节或者说针对具体个体的因素。如果想要引入非线性因素需要做特征交叉,这样很容易产生百亿特征

转贴:110个Oracle 函数

☆樱花仙子☆ 提交于 2020-04-23 14:31:47
转载地址: https://bbs.csdn.net/topics/310021870 1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C -- - 赵 A 3. CONCAT 连接两个字符串; SQL> select concat(010-,88888888)||转23 高乾竞电话 from dual; 高乾竞电话 ---------------- 010-88888888转23 4. INITCAP 返回字符串并将字符串的第一个字母变为大写; SQL> select initcap(smith) upp from dual; UPP ----- Smith 5. INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置

互联网轻量级框架SSM-查缺补漏第八天(MyBatis插件plugin使用及原理)

微笑、不失礼 提交于 2020-04-18 03:59:02
  简言:今天进行第八天的记录(只是写了八天)。有的时候看的多,有的时候看的少,看的少的时候就攒几天一起写了。而今天这个插件我昨天写了一下午,下班没写完就回去了,今天把尾收了,再加上一个过程图方便下面原理的理解。我这个特别不爱看书的人都看半个多月了,希望我一个月真能养成个戒不掉的习惯~ 第八章 插件   在前一篇介绍了四个对象,是SqlSession执行过程中通过他们来完成数据库操作和结果返回的。( Executor 、 StatementHandler 、 ParameterHandler 、 ResultSetHandler )。我昨天的查缺补漏有记载,要是想深入了解就可以去查资料了,或者看我这本书的第七章(书名《JavaEE 互联网轻量级框架整合开发》)    插件的原理 就是 在四大对象调度时插入我们的代码去执行一些特殊的要求以满足特殊的场景需求 。   斜体字是部分 原理 。我先在这插入一张流程图,如果有疑问可以看到最后再返回来琢磨一下这个图。    使用方法 :(举例:要想在预编译之前在控制台上打印一些东西,就需要拦截执行SQL的StatementHandler对象的预编译方法,也就是prepare方法)   在MyBatis中使用插件,就必须实现 interceptor 接口,实现它的三个方法(代码中有注释,应该能知道啥意思): package com.ssm