intercept

spring boot开发笔记

只愿长相守 提交于 2020-11-13 14:01:54
单元测试 /** * 用户查询单测 * */ @Test public void whenQuerySuccess() throws Exception { String result = mockMvc .perform( get ( "/user" ) .param( "username" , "jojo" ) .param( "age" , "18" ) .param( "ageTo" , "60" ) .param( "xxx" , "yyy" ) // .param("size", "15") // .param("page", "3") // .param("sort", "age,desc") .contentType(MediaType. APPLICATION_JSON_UTF8 )) .andExpect( status ().isOk()) .andExpect( jsonPath ( "$.length()" ).value( 3 )) // 结果期望 .andReturn().getResponse().getContentAsString(); System. out .println(result); } @GetMapping @JsonView (User.UserSimpleView. class ) @ApiOperation (value =

nginx:反向代理到grpc server

不羁岁月 提交于 2020-11-12 20:43:14
1.nginx 反向代理到grpc http http v2 (grpc) 后端golang使用了grpc开发了部分微服务,访问时直接使用端口请求。 安全隐患,需要开放端口. grpc的go服务器,没有前置的nginx作为缓冲,难以支持大量请求。 直接让公网的请求连接到go编写的grpc的服务,遇到慢请求时,会被拖垮。 eg:每一个客户端的请求上传大文件时,占用一个grpc连接, 公网耗时较长, 且grpc server处理效率较低. eg:nginx在接收到上传的文件后,代理请求, 在内网直接连接go grpc server, 优于外网直接连接. 2.grpc app 配置 grpc app: 端口 127.0.0.1:9091 127.0.0.1:9092 3.nginx conf grpcapp.conf: upstream grpcservers { hash $request_uri; server 127.0.0.1:9002; server 127.0.0.1:9003; } server { listen 9090 http2; access_log ./logs/grpc_app/api.access.log ; error_log ./logs/grpc_app/api.errors.log ; location / { grpc_pass grpc:/

Spring学习笔记——ApplicationContext初始化

帅比萌擦擦* 提交于 2020-11-07 10:01:13
Spring上下文ApplicationContext接口,初始化实现在AbstractApplicationContext中 初始化流程: public void refresh() throws BeansException, IllegalStateException { synchronized ( this . startupShutdownMonitor ) { // 线程安全 // Prepare this context for refreshing. prepareRefresh();// 初始化标记值和 Environment // Tell the subclass to refresh the internal bean factory. ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(); // 初始化 BeanFactory 并扫描 BeanDefinitions // Prepare the bean factory for use in this context. prepareBeanFactory(beanFactory);// 为 BeanFactory 初始化属性值,并且添加各种回调处理器,如 ApplicationAware 等 try { //

Struts2 S2-052 RCE简单测试

一笑奈何 提交于 2020-11-01 20:02:52
本文由玄魂和 方块K 合写。 不太愿意跟风写类似的文章,网友“方块K” 投了一篇相关文章过来,但是略显简略,我重新进行了扩展。 参考了网上的相关文章,自己重新做 实验,算不上原创。 1.1 简介 2017年9月5日,Apache Struts发布最新安全公告,Apache Struts2的REST插件存在远程代码执行的高危漏洞,该漏洞由lgtm.com的安全研究员汇报,漏洞编号为CVE-2017-9805(S2-052)。Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。 参考: https://cwiki.apache.org/confluence/display/WW/S2-052 https://lgtm.com/blog/apache_struts_CVE-2017-9805 1.2 漏洞分析 根据补丁分析, 构造相对应的漏洞检测数据包。使用调试工具分析,发现Action经过REST插件处理时会被ContentTypeInterceptor这个类拦截,进入intercept方法如下图所示: 这个Intercept拦截方法很重要,分三步: 第一步:getHandlerForRequest方法会判断提交的请求类型

Python 机器学习:多元线性回归

痴心易碎 提交于 2020-10-29 04:53:46
向AI转型的程序员都关注了这个号 👇👇👇 大数据挖掘DT机器学习 公众号: datayx 接着上一次的一元线性回归 python机器学习:线性回归 往下讲,这篇文章要讲解的多元线性回归。 1、什么是多元线性回归模型? 当 y 值的影响因素 不 唯一时, 采 用多元线性回归模型 。 例如商品的销售额可能不电视广告投入,收音机广告投入,报纸广告投入有关系,可以有 sales = β0+ β 1*TV+ β 2* radio+ β 3*newspaper. 2、使用pandas来读取数据 pandas 是一个用于数据探索、数据分析和数据处理的python库 import pandas as pd # read csv file directly from a URL and save the results data = pd .read_csv('/home/lulei/Advertising.csv') # display the first 5 rows data.head() 这里的Advertising.csv是来自http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv。大家可以自己下载。 上面代码的运行结果: TV Radio Newspaper Sales 0 230.1 37.8 69.2 22.1 1 44.5 39.3

A--多元线性回归的python实现

|▌冷眼眸甩不掉的悲伤 提交于 2020-10-29 01:41:48
In [1]: import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt In [2]: # 创建一个矩阵 a = np.array([[1, 2], [3, 4 ]]) m = np.mat(a) m [2]: matrix([[1, 2], [3, 4]]) In [4]: # 矩阵运算回顾 # 矩阵转秩 m.T # 矩阵乘法 m * m a * a # 矩阵⾏列式 np.linalg.det(m) # 求逆矩阵 m.I # 转换成array m.A # 降维成一维 m.fattlen Out[4]: matrix([[-2. , 1. ], [ 1.5, -0.5]]) 假设输入数据为DataFrame格式,最后一列为标签值,在此基础上编写线性回归自定义函数(最小二乘) In [ ]: # 矩阵公式 w=(x.T * x).I * X.T * y In [53]: # 根据最小二乘法推导得 w=(x.T * x).I * X.T * y 注:如果(x.T * X)不满足可逆性,那么最小二乘无解,另不满足凸函数,也无解 # 又因为特征矩阵在存在多重共线性的情况下,特征矩阵不满足可逆性,所以在做回归之前,需要消除多重共线性 def

Python 实战多元线性回归模型,附带原理+代码

℡╲_俬逩灬. 提交于 2020-10-22 18:49:09
作者 | 萝卜 来源 | 早起Python( ID:zaoqi-python ) 「多元线性回归模型」 非常常见,是大多数人入门机器学习的第一个案例,尽管如此,里面还是有许多值得学习和注意的地方。其中多元共线性这个问题将贯穿所有的机器学习模型,所以本文会 「将原理知识穿插于代码段中」 ,争取以不一样的视角来叙述和讲解 「如何更好的构建和优化多元线性回归模型」 。主要将分为两个部分: 详细原理 Python 实战 Python 实战 Python 多元线性回归的模型的实战案例有非常多,这里虽然选用的经典的房价预测,但贵在的流程简洁完整,其中用到的精度优化方法效果拔群,能提供比较好的参考价值。 数据探索 本文的数据集是经过清洗的美国某地区的房价数据集。 import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv('house_prices.csv') df.info();df.head() 参数说明: neighborhood/area: 所属街区和面积 bedrooms/bathrooms: 卧室和浴室 style: 房屋样式 多元线性回归建模 现在我们直接构建多元线性回归模型: from statsmodels

Java项目笔记之旅游点评项目总结04

余生颓废 提交于 2020-10-22 08:44:44
不点蓝字,我们哪来故事? Redis操作流程: 预热——初始化:以前在操作Redis中的数据之前,需要判断数据是否存在,存在获取,不存在创建一个(即准备数据)。实际中尽量避免,即操作之前就先将数据准备好; 缓存的逻辑操作:对缓存中的数据做CRUD等操作; 缓存数据的持久化:缓存中的数据被操作之后,数据库中的数据要不要和Redis被写的数据保持同步;读操作不会改变,不需要持久化; 初始化(预热): 凡是用到Redis的都要思考上面的三个步骤 思考: 使用Redis都要想清楚的问题: 需要初始化什么数据 ? 需要频繁改动的数据( DML )[ 此处需要将统计相关的vo数据初始化到Redis中 ] 不需要频繁改动的数据(DQL) 在哪一个项目执行初始化逻辑 ?(mgrsite、website-api) website-api :接口对外暴露,安全性不可保证;website-api后续拓展可能做集群操作,那样就会导致多次执行了初始化操作; 数据初始化数据数据管理范畴,你应该 使用mgrsite 来管理; 在JavaWeb中的哪一个组件中实现初始化逻辑?(filter、servlet、intercept、controller、listener) javaweb监听器:监听web(Tomcat)容器的启动,功能简单; spring容器的监听器 :监听的是spring容器的启动,功能强大

FDA拒批奥贝胆酸治疗NASH后,该公司这次能否力挽狂澜?

强颜欢笑 提交于 2020-10-01 12:16:04
  两个月前,FDA 拒绝了 Intercept Pharmaceuticals(以下称 Intercept)关于用奥贝胆酸(OCA)治疗非酒精性脂肪肝炎(NASH)的申请,FDA 表示,当时的数据尚不能保证该药对 NASH 相关肝纤维化患者的安全性和疗效。近日,Intercept 称将公布更多临床数据用以支持此前的申请。   OCA 是当前唯一一个在治疗 NASH 的关键 Ⅲ 期研究中达到终点的药物,也是唯一一个获得 FDA 突破性药物资格认证的 NASH 药物。如果此次数据得到 FDA 认可,对于 Intercept 而言意义重大。   NASH 全球患病率达到 25.24%,这是一种由肝脏中过多的脂肪堆积引起的进行性肝病,可引起慢性炎症,导致进行性纤维化(瘢痕化),导致肝硬化,最终肝衰竭,癌变和死亡。目前尚无 FDA 批准用于治疗 NASH 的药物。EvaluatePharma 预测全球 NASH 药物的市场规模在 2025 年可以达到 400 亿美元,可见其临床需求之大。   2020 年 6 月 29 日,Intercept 公司宣布收到 FDA 拒绝 OCA 用于治疗 NASH 所致肝脏纤维化新药申请的完整答复函(CRL)。CRL 指出,根据已审查的数据,FDA 认为 OCA 基于组织病理学试验终点的预期益处尚不明确,而且治疗收益并没有超过潜在的风险,因此不支持加速批准

EL表达式取值的范围-动力节点

醉酒当歌 提交于 2020-10-01 02:46:17
有些朋友对于EL表达式取值的范围不是很了解,在Struts2中对request进行了装饰,增强了getAttribute()方法,改变了EL该方法的查找范围,具体为,查找request域,不存在,查找值栈,不存在,查找ContextMap,还是不存在,则返回null。 EL表达式取值 因为${对象名},会使用findAttribute的查找,其顺序是page域->request域->session域->application域原理如下: public class PageContext{ //在page域中根据name获取value public Object getAttribute(String name){ return "找到了返回对象" | "没找到返回null"; } //从四个域中逐个搜索,只要在其中一个找到,就不再继续寻找 public Object findAttribute(String name){ Object value = null; //搜page域 value = this.getAttribute(name); if(value != null){ return value; } //搜request域 value = this.getRequest().getAttribute(name); if(value != null){return