Java EE

Look for traces of APT attacks through the ZoomEye history api

让人想犯罪 __ 提交于 2020-07-26 12:39:52
Author: Heige(a.k.a Superhei) of KnownSec 404 Team Date: May 25,2020 Chinese version: https://paper.seebug.org/1219/ We had released ZoomEye’s historical data API query interface in ZoomEye 2020 that had launched in January this year: https://medium.com/@80vul/zoomeye-2020-has-started-8414d6aaf38 . Next, I will introduce some examples of using ZoomEye History API to capture the traces of APT team attacks. Instructions for using the historical query API interface: https://www.zoomeye.org/doc#history-ip-search ,Of course we have also updated our ZoomEye SDK support history api: https://github

单点登录终极方案之 CAS 应用及原理

倖福魔咒の 提交于 2020-07-26 12:08:58
作者:Readiay https://blog.csdn.net/Readiay/article/details/52856510 Cookie的单点登录的实现方式很简单,但是也问题颇多。例如:用户名密码不停传送,增加了被盗号的可能。另外,不能跨域! 1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用户从某种意义上觉得只登录了一次。 **该方式缺点就是多次传送用户名密码,增加被盗风险,以及不能跨域。**点击 这里 了解Java如何进行跨域。同时www.qiandu.com与mail.qiandu.com同时拥有登录逻辑的代码,如果涉及到修改操作,则需要修改两处。 2、统一认证中心方案原理 在生活中我们也有类似的相关生活经验,例如你去食堂吃饭,食堂打饭的阿姨(www.qiandu.com)告诉你,不收现金。并且告诉你,你去门口找换票的(passport.com)换小票。于是你换完票之后,再去找食堂阿姨,食堂阿姨拿着你的票,问门口换票的,这个票是真的吗?换票的说,是真的,于是给你打饭了。 基于上述生活中的场景,我们将基于Cookie的单点登录改良以后的方案如下: 经过分析,Cookie单点登录认证太过于分散

springboot 集成完整的swagger2

不打扰是莪最后的温柔 提交于 2020-07-26 09:39:44
springboot 在集成swagger中会不会遇到各种问题: 1、swagger 进行接口鉴权(比如设置header的token,接口进行拦截处理)。 2、swagger 进行实体属性解析(pojo类的属性注解无法解析)。 3、swagger 进行响应码统一(code状态吗标识、200响应成功,响应体解析)。 4、swagger 设置接口共用参数(统一每个接口都存在的参数)。 以下是解决问题配置信息 一、引入依赖包 使用之前请更新或直接引用该版本依赖包 更新版本地址:接口依赖jar https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 ui 依赖jar https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui < dependency > < groupId > io.springfox </ groupId > < artifactId > springfox-swagger2 </ artifactId > < version > 2.9.2 </ version > </ dependency > < dependency > < groupId > io.springfox </ groupId > <

spring boot Websocket(使用笔记)

半腔热情 提交于 2020-07-26 05:41:58
本文只作为个人笔记,大部分代码是引用其他人的文章的。 在springboot项目中使用websocket做推送,虽然挺简单的,但初学也踩过几个坑,特此记录。   使用websocket有两种方式:1是使用sockjs,2是使用h5的标准。使用Html5标准自然更方便简单,所以记录的是配合h5的使用方法。 1、pom   核心是@ServerEndpoint这个注解。这个注解是Javaee标准里的注解,tomcat7以上已经对其进行了实现,如果是用传统方法使用tomcat发布项目,只要在pom文件中引入javaee标准即可使用。 < dependency > < groupId > javax </ groupId > < artifactId > javaee-api </ artifactId > < version > 7.0 </ version > < scope > provided </ scope > </ dependency >   但使用springboot的内置tomcat时,就不需要引入javaee-api了,spring-boot已经包含了。使用springboot的websocket功能首先引入springboot组件。 < dependency > < groupId > org.springframework.boot </ groupId > <

SpringMVC之文件上传

徘徊边缘 提交于 2020-07-26 05:39:39
一、环境搭建 1、新建项目 (1)在” main”目录下新建” java”与” resources”目录 (2)将” java”设置为”Sources Root” (3)将” resources”设置为”Resources Root” (4)在”java”目录下新建”StudyProject.Controller”包 (5)在”StudyProject.Controller”包下新建”TestController”类 (6)在”resources”目录下新建”Spring.xml” (7)在”WEB-INF”目录下新建文件夹”Pages” (8)在“Pages”目录下新建”success.jsp” 2、整体框架 3、TestController类和success.jsp (1)TestController类 原代码 1 package StudyProject.Controller; 2 3 public class TestController { 4 } 编写前端控制器及路径 修改后 1 package StudyProject.Controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation

Jenkins构建步骤图解

家住魔仙堡 提交于 2020-07-26 00:21:27
Jenkins是什么 Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。 使用Jenkins对Java代码进行打包 Jenkins是一个强大的CI工具,虽然本身使用Java开发,但也能用来做其他语言开发的项目CI。下面讲解如何使用Jenkins创建一个构建任务。 1. 登录Jenkins,点击新建任务 之后进入到这个界面,任务名称可以自行设定,但需要全局唯一。输入名称后选择构建一个自由风格的软件项目(有时选择第二个:构建一个maven项目),并点击下方的确定按钮即创建了一个构建任务,然后就会自动跳转到该job的配置页面。 2. 配置界面,配置项详解 2.1 General :是构建任务的一些基本配置。名称,描述之类的。 2.2 源码管理 :源码管理就是配置你代码的存放位置。 2.3 构建触发器 :顾名思义,就是构建任务的触发器。 2.4 构建环境 :就是构建之前的一些准备工作,如指定构建工具。

国际级大型分布式系统架构师纯手写spring“百科全书”,文档贼全

拜拜、爱过 提交于 2020-07-25 22:15:36
实用 本书除了 讲解Spring的理论知识外,还在每个知识点上辅以大量的实战案例,使理论可以联系实际,具备更强的可操作性。 简明 目录标注有“新功能” “实战”“难点”及“重点'等标识, 方便读者做好知识点的归纳和总结。 官方 以Spring官方文档和Spring框架源码为主要参考依据, 确保知识点的准确性。 自Spring诞生以来,以Spring技术栈为核心的企业级应用开发方式深入人心,已经成为Java EE开发的最佳实践。随着Spring 5版本的发布,Spring 自身也发生了巨大的变革。本书力求全面介绍Spring框架,涵盖了Spring 核心、测试、数据访问、Web开发、响应式编程、系统集成及微服务等方面在内的共26章的内容,可以说是Spring技术的“百科全书”。同时,本书基于Spring 5版本来编写,除了涉及Spring 5版本的新特性外,还介绍了REST服务、响应式Web开发、微服务设计、Spring Boot, Spring Cloud等方面的前瞻技术。而且除了讲解Spring的理论知识外,还在每个知识点上辅以大量的代码案例,使理论可以联系实际,具备更强的可操作性。 本书特色 本书具有以下特色。 (1)全面:本书全面介绍Spring框架,涵盖了Spring核心、测试、数据访问、系统集成、Web开发、响应式编程及微服务等方面在内的共26章的内容

Java的前生今世

两盒软妹~` 提交于 2020-07-25 18:03:04
Java作为一门编程语言,自诞生以来已经流行了20多年,在学习它之前,我们有必要先了解一下它的历史,了解它是如何一步步发展到今天这个样子。 孕育 上世纪90年代,硬件领域出现了单片式计算机系统,比如电视机机顶盒这些消费设备。这些设备的特点是处理能力和内存都有限。如果使用C++编写程序,则对于这类设备来说过于庞大。 所以需求便来了,为了适应这类设备,需要一种小型的计算机语言,Java便应运而生了。 1991年,Sun公司的James Gosling, Mike Sheridan和Patrick Naughton发起了一个名为“Green”的项目小组,主要用于电视机顶盒这类消费设备。 由于设备的处理能力和内存有限,所以要求 语言短小、代码紧凑 。而对于电视机顶盒这类消费设备来说,厂商会选择各种不同的CPU,所以要求语言 可移植、不与特定的平台捆绑在一起 。 出生 Green项目组以C++为基础,对C++进行了一些改造,并删除了一些不太实用、复杂繁琐的东西,开发出了名为“Oak”的语言,(Oka来自James Gosling办公室外的橡树)。 成长 挫折 1992年夏天,Green项目组已经能够演示Green操作系统、Oak的程序设计语言、类库和其硬件。 1992年9月,Green项目组发布了它的第一个名为“Start 7”的产品,该产品是一个个人数字助理设备

深入理解JVM(③)判断对象是否还健在?

跟風遠走 提交于 2020-07-25 16:16:44
前言 因为Java对象主要存放在Java堆里,所以垃圾收集器(Garbage Collection)在对Java堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(不被引用了)。 判断对象是否健在的算法 1.引用计数算法 引用计数算法,很容易理解, 在对象中添加一个引用计数器,每有一个地方引用它时,计数器值就加一;当引用失效是,计数器值就减一;任何时刻计数器为零的对象就是不可以能再被使用的对象 。 引用计数算法的原理简单,判定效率也很高。市面上也确实有一些技术使用的此类算法来判定对象是否存活,像ActionScript 3 的FlashPlayer、Python语言等。但是在主流的Java虚拟机里面都没有选用引用计算法来管理内存,主要是使用此算法时,必须要配合大量的额外处理才能保证正确的工作,例如要解决对象之间的相互循环引用的问题。 public class OneTest { public Object oneTest = null; private static final int _1MB = 1024 * 1024; private byte[] bigSize = new byte[256 * _1MB]; /** * 这个成员属性的唯一意义就是占点内存,以便能在GC日志中看清楚是否有回收过。 */ @Test public void

ftp上传工具中文版,ftp上传工具中文版连接的办法,配置方式

拜拜、爱过 提交于 2020-07-24 22:36:58
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源 使用FTP连接工具进行远程连接 地址: FTP连接管理工具 功能比较强大,FTP用于在FTP服务器和FTP客户端之间上传和下载文件,它最优秀的功能就是可以批量管理,可以将文件从一个主机传输到另一个主机。 Java配置方式: import com.enterprisedt.net.ftp.*; public class FtpClient { static FTPClient ftpClient; public FtpClient(){}; String remoteAddress="192.168.168.33",userName="cattsoft",password="cattsoft"; public void DownLoad(){ try{ FTPClient client = new FTPClient(); client.setRemoteHost(remoteAddress); client.connect(); client.login(userName,password); client