文章目录

风林火山's Blog

标签: Java (20)

给树形结构节点编号的一种思路

OWASP TOP10 网络安全威胁整理 有更新!

缘起 上月底到合肥参加了owasp top10网络安全宣讲。回来后结合在开发中遇到的问题整理并在部门内部做了一次分享,以下是分享内容。 01注入 描述 注入漏洞发生在应用程序将不可信的数据发送到解释器。需要考虑任何向系统发送不信任数据的人。 场景 String query = “SELECT * FROM user WHERE user_id =‘“ + request.getParameter(”id“) + ”’”; 在该案例中,构造Web请求时,将参数id设为“’ or ‘1’ = ’1”,将得到下面的语句,绕过user_id的条件判断得到所有用户信息。 SELECT * FROM user WHERE user_id = ’’ or ‘1’ = ‘1’ 避免SQL注入,一般使用PreparedStatement进行数据库操作,将SQL语句进行预编译,经过预编译后,传入的参数将被识别为带一对引号的字符串而不是带有sql关键字的语句。 怎么做 工作中使用到的Mybatis提供两种传参数写法: select * from user where name ….

瞎扯淡:Jenkins 搭建要点

前言 Jenkins作为持续集成工具,大大的解放了ITER的双手,将大量重复性的,繁琐的更新、构建、部署操作融于一体。之前用了一些时间为项目组搭建了一套Jenkins环境,将搭建的步骤做一次梳理,分享出来。 概述 总的来说,Jenkins是一个协调者的身份,管理和协调了代码库,代码仓库,代码运行环境等。Jenkins和其他部分的依赖关系如图: 步骤 有了上述的关系图,我们就可以开始着手搭建CI环境了。 JDK,NEXUS,MAVEN此三者是Jenkins直接依赖的环境,因此需要先行安装配置。 下载安装JDK,配置环境变量。java -version命令查看是否安装成功。 下载安装MAVEN,配置环境变量。 安装私有的NEXUS,见此处。 关联MAVEN与NEXUS,将MAVEN的远程仓库修改为私有NEXUS(在MAVEN的settings.xml文件中设置)。不建议使用MAVEN中央仓库,因为部分jar包被墙且下载速度慢,同时无法发布自己的私有Jar包(审核时间长且不适合放在公网),造成构建发布失败。 Jenkins 安装过程略 启停命令 :service jenki….

RESTFul 风格 API 设计 有更新!

修订记录 日期 修订版本 修订章节 修改描述 作者 20170623 V1.0 全文 新增 某某 注意事项 类型是属性类型,只有String、Number、Object、Array 编码格式默认为utf-8 接口说明 1. 商品新增[单个]- 请求地址: post /api/{version}/products- 请求参数: 字段 说明 类型 备注 是否必填 name 商品名 String … 是 price 价格 Number … 是 id 商品编号 String … 是 返回参数: 字段 说明 类型 备注 是否必填 code 返回码 Number 是 message 返回码说明 Number 是 2. 商品新增[批量]- 请求地址: post /api/{version}/products- 请求参数: 字段 说明 类型 备注 是否必填 datas 商品数据数组 Array … 是 其中,datas中的一个data: 字段 说明 类型 备注 是否必填 ….

简明 SONATYPE NEXUS 私有库搭建配置说明

缘由 持续集成jenkins框架需要配合 私库上传自有包 避免中央仓库网络条件不行包下载失败,且外网中断时也可以正常运行 节约公司网络带宽 加速包下载 步骤 先安装jdk8,配置环境变量 下载程序包 nexus-3.3.1-01-unix.tar.gz【nexus oss版本】 上传到/usr/local目录,解压,进入到bin目录执行启动脚本,这里的&意思是作为后台进程运行 tar -cxvf nexus-3.3.1-01-unix.tar.gz mv nexus-3.3.1-01-unix.tar.gz nexus331 cd nexus331/bin ./nexus run & 执行后,会打印很多启动信息。启动完成后访问:服务器地址:8081,nexus的默认端口是8081,有两个默认用户admin(密码admin123)、anonymous(匿名用户,只能查看)。 关闭nexus ./nexus stop[关闭nexus] 登录,大概是这样: 本地设置 安装好以后,需要与本地做关联。那么,这个关联要怎样体现呢?一是本地maven的setti….

瞎扯淡:Java 泛型编程 - 泛型方法 有更新!

概论 泛型方法可以定义在泛型类中,也可以定义在非泛型的普通类中,即泛型方法不依赖于泛型类的存在而存在,而是可以单独定义和使用。有一个原则:能使用泛型方法完成的功能,就不要使用泛型类。泛型方法表达一种:deal with T的概念。泛型方法的一般格式: public <T> void methodName(T t){ } 例如: public class GenericMethodTest { public static <T> void dealWith( T t){ System.out.println(t.getClass().getName()); } public static void main(String[] args) { GenericMethodTest.dealWith(“String”); GenericMethodTest.dealWith(new Object()); GenericMethodTest.dealWith(new BigDecimal(123)); } } 可变参数泛型方法 泛型方法和可变参数可以结合使用例如: p….

跨越 12 个版本 Solo 升级过程记录 有更新!

本文描述了B3log的升级方法。

读书笔记:【大型网站技术架构】核心原理与案例分析 有更新!

前言:春节前读了这本书,原计划是春节假期就把读书笔记整理好,后来眼睛不舒服,未遂。节后经过几个晚上的整理,现将内容发上来供参考。注意本文内容只有核心原理,没有案例分析,因为设计案例分析,必须画图,否则讲不清,容以后再写。 ### 第一章:大型网站架构演化 > #### 1.1大型网站软件系统的特点:高并发、大流量,高可用,海量数据,用户分布广泛、网络情况复杂,安全环境恶劣,需求快速变更、发布频繁,渐进式发展。 > #### 1.2大型网站架构演化发展历程 > 1.2.1初始阶段:应用、数据库、文件在同一台服务器上。 1.2.2应用服务和数据服务分离 1.2.3使用缓存改善网站性能,二八定理80%的业务集中在20%的数据上,缓存又分为本地缓存和分布式缓存 1.2.4应用服务器集群 1.2.5数据库读写分离 1.2.6使用反向代理和CDN加速网站响应 1.2.7使用分布式文件系统和分布式数据库 1.2.8使用NoSql和搜索引擎 1.2.9业务拆分 1.2.10分布式服务 ### 第二章:大型网站架构模式 #### 模式:经过验证的,描述并解决某一类问题的固有方案。 > #### 2…..

瞎扯淡:Java泛型编程-泛型类型 有更新!