- 博客(80)
- 收藏
- 关注
原创 Eclipse 内存分析器MAT(四)基本使用手册
1.首先我们通过下面的一个示例代码产生一个OutOfMemoryError时对应的dump文件[code="MatSimple.java"]/** * */package simple.test;import java.util.ArrayList;import java.util.List;/** * @author: 作者: chengaofeng...
2018-09-11 19:45:19
1000
Eclipse 内存分析器MAT(三)获取heap dumpheap dump
1.获取出现OutOfMemoryError时对应的heap dump通过在启动命令中追加如下jvm参数-XX:+HeapDumpOnOutOfMemoryError此时当应用程序出现OutOfMemoryError会在当前的工作目录下生成dump文件。可以追加如下jvm参数修改dump文件的路径-XX:HeapDumpPath=/Users/chengaofeng/Downloa...
2018-09-11 15:59:05
1001
原创 Eclipse 内存分析器MAT(二)基础概念
1.Heap Dump(java 堆dump文件) Heap Dump代表的是java处理器(jvm)在特定时间点对应的内存快照(如出现OutOfMemoryError的时候)。根据生成dump文件时指定的格式以及采用的jvm类型,dump文件中可能会包含着不同的信息,但通常来说,里面都会包含在快照生成时java heap中的类和对象。在一般情况下,在触发快照生成前都会有一个Full GC处...
2018-09-09 16:16:44
330
Eclipse 内存分析器MAT(一)--MAT安装配置
1.简介 Eclipse 内存分析器(MAT)是由IBM开发的一个功能丰富、高效的java堆分析器,可以帮助java开发者发现内存泄漏和减少内存消耗。 用MAT可以分析包含成千上万个对象生产环境对应的java heap dump,能够快速计算出常驻对象的大小,查找出来是哪个对象阻止了垃圾回收器的工作,并能自动的做出内存泄漏点的推断。2.安装 MAT提供了两种运行方式,一种以e...
2018-09-09 10:12:17
613
Docker CI环境迁移(备份,还原)
一、Gitlab 备份及还原在原机器上执行 docker exec –it {containerId} git-rake gitlab:backup:create执行后会在 /var/opt/gitlab/backups目录下创建一个压缩包 1535564046_gitlab_backup.tar[img]http://dl2.iteye.com/upload/attachment...
2018-08-30 20:06:59
349
Junit中利用Embedded Mongo(Fongo)
MongoDB 是一个基于分布式文件存储的NoSQL数据库,在应用开发中使用非常普遍,因为mongo是由 C++ 语言编写,真实的mongodb只能以server模式独立运行,这样就使得基于mongo应用的junit无法真正的独立运行,除非我们将所有mongo相关的操作都mock,本文将介绍一种为了针对mongo应用的junit而独立开发的内存库fakemongo,简称fongo,官网地址[u...
2018-08-17 15:38:46
1769
spring boot应用中利用Embedded Database
在应用开发过程中,利用内存数据库暂时代替实体数据库是很方便的一件事,既可以保证Juint的独立性,也能够让我们在开发前期方便的展示、模拟应用。 本篇文章我们通过一个简单的应用程序一起来了解下H2在spring boot应用、以及在junit中如何使用(其他类似的数据库还有HSQL、Derby)1.H2的特性[list][*]速度快、完全开源、支持JDBC API[*]同时...
2018-08-16 10:25:16
844
原创 基于curator实现leader选举
1.前言curator由Netflix的工程师开发,主要目的为了基于zookeeper的应用变得简单可靠,在2013年成为apache的顶级项目。curator基于zookeeper,但提供了更高级别的API抽象以及工具集,并对zookeeper提供的常用功能进行了封装和扩充,例如leader选举、分布式锁、服务发现、缓存等功能,从而使开发者在实现这些功能时不用在实现哪些无聊的程式化代...
2018-06-13 19:06:33
1039
2
原创 java 远程连接Pseudo-Distributed Hadoop
本文主要描述如何实现在一台Linux机器上搭建一个Pseudo-Distributed的Hadoop,在另外一台机器上通过API访问 服务器端环境搭建:1.版本信息 java:1.8.0_172 Hadoop: 2.9.12.设置JAVA_HOME 在~/.bash_profile中追加如下内容 [code="sh"] JAVA_HOME=/u...
2018-06-04 09:09:49
180
原创 java远程连接standalone hbase
本文主要描述如何实现在一台Linux机器上搭建一个standalone的hbase,在另外一台机器上通过API访问服务器端环境搭建:1.版本信息 java:1.8.0_172 hbase: 1.2.62.设置JAVA_HOME 在~/.bash_profile中追加如下内容 [code="sh"] JAVA_HOME=/usr/java/j...
2018-05-31 17:16:25
490
原创 spring-security(二十六)整合CAS 实现SSO
1.cas 认证流程[img]http://dl2.iteye.com/upload/attachment/0128/9714/cf768b27-10a7-3b70-92a0-0e6934559d20.png[/img]2.spring security中利用CasAuthenticationFilter对请求进行拦截的处理流程[img]http://dl2.iteye.com...
2018-04-05 18:09:29
401
原创 spring-security(二十五)鉴权
前言 本文将详细探讨spring security中的鉴权操作,包括AbstractSecurityInterceptor的不同实现,后面章节还会讨论更加精确的域对象访问控制。1.架构1.1 组件之Authorities在[url=http://fengyilin.iteye.com/admin/blogs/2411035]核心组件[/url]章节,我们知道认证后的Authent...
2018-03-27 11:21:22
513
原创 spring-security(二十四)CSRF
1.什么是CSRF攻击下面我们以一个具体的例子来说明这种常见的攻击模式1.1 假定某个银行的网站提供让当前登录用户给其他账号转账的功能,转账请求的格式如下[code="java"]POST /transfer HTTP/1.1Host: bank.example.comCookie: JSESSIONID=randomid; Domain=bank.example.com;...
2018-03-24 09:54:23
1271
1
原创 spring-security(二十三)Remember-Me认证
前言: Remember-me认证方式指的是能在不同的会话间记录用户认证信息的功能。通常通过向客户端发送一个cookie,在以后用户访问网站时通过这个cookie中的信息来自动登录实现。spring security 已经为我们提供了必要的hooks实现这个功能,并提供了两种具体的实现。一种是cookie中token包含了所有认证所需信息,并通过hash算法来保护这个token,另一种通过数...
2018-03-09 21:06:10
679
原创 spring-security(二十二)基本认证和摘要认证
前言: 在web应用中,非常流行以基本认证和摘要认证作为备选的认证机制。其中基本认证常用来对无状态的客户端进行认证,例如结合基于form的认证形式我们既能给用浏览器访问的用户提供认证也能给用web-service(restful)进行访问的用户提供认证。因为基本认证时用户名和密码都是以文本形式传递到服务端的,在安全级别高的应用中,基本认证要在传输过程中进行加密,例如采用https的形式。...
2018-03-06 16:58:50
1238
原创 spring-security(二十一)核心Filter-UsernamePasswordAuthenticationFilter
一、UsernamePasswordAuthenticationFilter功能和属性到目前为止,我们已经探讨了三个主要的filter,当采用默认配置时spring security会自动给我们追加这三个filter,现在我们的filter中还差一个处理用户认证的filter,下面我们就主要讨论下最常用的认证filter-UsernamePasswordAuthenticationFilter...
2018-03-04 11:05:00
676
原创 spring-security(二十)核心Filter-SecurityContextPersistenceFilter
一、SecurityContextPersistenceFilter功能和属性1.在前面介绍spring filter顺序时,我们简单介绍过SecurityContextPersistenceFilter,他主要有两个作用。[list][*]请求开始时从对应的SecurityContextRepository获取securityContext存入SecurityContextHolde...
2018-02-28 21:40:10
2780
原创 spring-security(十九)核心Filter-ExceptionTranslationFilter
前言: 在spring的安全过滤器链中ExceptionTranslationFilter在FilterSecurityInterceptor的前面,这个过滤器自身并不执行具体的安全防护,他主要处理FilterSecurityInterceptor这个过滤器抛出的各种异常,并返回给客户端一个合适的http响应。一、ExceptionTranslationFilter功能和属性1.在类...
2018-02-27 16:31:18
1464
原创 spring-security(十八)核心Filter-FilterSecurityInterceptor
前言: 当用spring security时,我们会用到各种各样的filter,在接下来的章节中我们我们将着重讨论几个核心的Filter,本节将讨论FilterSecurityInterceptor这个filter。和这个类相关的对象如下图所示[img]http://dl2.iteye.com/upload/attachment/0128/9716/26917b9a-17ba-320...
2018-02-25 10:59:18
2847
原创 spring-security(十七)Filter顺序及简介
前言: spring security在web应用中是通过各种各样的filter来做认证和安全控制的,由于filter之间的依赖性,过滤器链中filter的顺序也极其重要,不管实际项目中我们选用了哪些过滤器。1.filter顺序[list][*]ChannelProcessingFilter,访问协议控制过滤器,可能会将我们重新定向到另外一种协议,如从http转换成https...
2018-02-22 18:16:28
3708
原创 spring-security(十六)Filter配置原理
前言: spring security最常见的应用场景还是基于http请求和servlet API的web应用,接下来的几个章节我们将重点探讨下spring security是如何在web应用中实现认证和访问控制的。通过前面章节的讲述,我们已经了解到,在web应用中spring是通过各种各样的filter来做认证和鉴权,本小节就主要讨论下spring中过滤器的几个主要组件。1.Deleg...
2018-02-21 15:18:03
977
原创 spring-security(十五) Password编码
前言: 在实际应用中,如果我们直接把密码以明文形式存储在数据库中存在一定的安全隐患。所以最好以某中方式将密码编码后再存储下来,用户登录时将用户输入的密码也按照相同的编码方式编码后和数据库中存储的密码相比较,即可以完成验证,也保证了密码等敏感信息的安全性。1.在spring security中主要用PasswordEncoder对密码进行编码,因为历史版本的缘故,spring securi...
2018-02-19 15:15:04
469
原创 spring-security(十四)UserDetailsService
前言: 作为spring security的核心类,大多数的认证方式都会用到UserDetailsService和UserDetails这两个接口,本文会详细探讨下UserDetailsService及其实现类。1. UserDetailsService接口 在spring security中,为了方便扩展,UserDetailsService接口被设计的极其简单,只包含一个方法...
2018-02-19 11:35:17
1495
原创 spring-security(十三)核心服务类
前言: 在之前的篇章中我们已经讲述了spring security的部分组件,接下来我们再重点查看下另外两个重要的和认证相关的接口及其实现类:AuthenticationManager, UserDetailsService 。1.AuthenticationManager, ProviderManager 和 AuthenticationProvider Authentica...
2018-02-18 16:46:44
148
原创 spring-security(十二)鉴权方式概述
前言: 本文主要讲述在spring security鉴权的实现方式,目前spring security 支持基于 spring aop、filter、aspectj三种认证方式,分别提供对方法调用、web请求、业务对象的访问控制。在spring security中健全主要是由AccessDecisionManager这个类完成的,这个类有一个decide方法,接受一个代表认证者信息的Auth...
2018-02-18 10:42:22
913
原创 spring-security(十一)Web应用认证过程
前言: 本文将探讨当web应用中加入的spring security功能时,用户是如何认证的、安全上下文是如何创建的。环境: spring boot 版本:1.5.4.RELEASE 1.一个典型的web应用的认证过程如下:[list][*]用户访问网站主页,点击一个链接[*]一个请求到达服务器,服务器发现用户正在访问一个受保护的资源[*]因为到目前为止,用户还...
2018-02-17 17:17:57
179
原创 spring-security(十)基本认证过程
前言: 在spring security中认证具体指的是什么以及如何做的,本文做一个简单的阐述环境 spring boot 版本:1.5.4.RELEASE下面我们一起考虑一个简单的大家都熟悉的认证情景[list][*]1.一个用户被提示输入用户名和密码[*]2.系统验证用户名和密码是否合法[*]3.用户的上下文信息被获取(如用户的权限列表)[*]4.创...
2018-02-17 13:55:06
187
原创 spring-security(九)-核心组件
前言: 本文主要介绍在spring security中的几个核心组件,以及他们之间是怎样相互协作的。环境: spring boot 版本:1.5.4.RELEASE1.核心组件之SecurityContextHolder SecurityContextHolder是spring security中最基本的组件,是用来存储我们应用的安全上下文的,包含了当前系统认证用户的...
2018-02-17 10:46:33
348
原创 spring-security(八)java config-sample之cas client
前言: SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。CAS是一个开源的企业级SSO具体实现,spring security也提供了和SSO的集成,本文用一个简单示例演示下如何在spring ...
2018-02-16 11:26:21
328
原创 Overlay-Cas server搭建
前言: CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。本文讲解基于4.2.7版本的cas server,并利用war overlay技术做一些简单的定制化,如提供http方式认证,简单的login界面修正。[b]war ove...
2018-02-16 10:04:59
326
原创 spring-security(七)java config-sample之concurrency
前言: 在实际应用中,我们可能会限制一个用户同时登录同一个应用的次数。例如,我们希望系统中只有一个‘张三’能登录,从而阻止用户‘张三’利用两个不同的session进入我们的web应用中,为此spring security为我们提供了以下两种策略实现这个功能:[list][*]当同样的用户再次登录的时候,就将前一次登录过的session信息自动设置成过期[*]直接报出一个错误,提示...
2018-02-15 10:51:29
151
原创 spring-security(六)java config-sample之rolehierarchy
前言: 在日常应用的权限系统中,一个角色包含其他角色是一个很常见的需求。例如,在一个应用中如果有两个角色 admin和user,我们会希望所有user用户能做的事admin用户都可以做。为了实现这样的功能,我们可以把所有需要user用户访问的资源再赋一遍权限给admin用户,但是当我们的应用系统中有很多的角色时,这样的设计将变的极其复杂。所以srpng给我们提供了另一种实现方式,让我们很容易...
2018-02-14 14:58:52
307
原创 spring-security(五)java config-sample之rememberme
前言: 本篇文章简单介绍spring-security给我们提供的remember me功能的使用方法,参数名、配置方式采用spring默认配置,后续章节进一步探讨时会详细说明自定义的方式。环境: spring boot 版本:1.5.4.RELEASE1.项目结构[img]http://dl2.iteye.com/upload/attachment/0128/91...
2018-02-14 11:23:48
170
原创 spring-security(四)java config-sample之jdbc
前言 本篇文章我们举例说明在spring-security中利用mysql来存储用户信息和权限信息,示例采用security默认提供的DDL。环境: spring-boot版本:1.5.4.RELEASE1.项目工程结构[img]http://dl2.iteye.com/upload/attachment/0128/9079/26c0ff3b-f7bc-3b9b...
2018-02-13 14:16:06
271
原创 spring-security(三)java config-sample之hello world
前言 这一节,我们会用一个最简单的示例来展示spring security的魅力,通过这个示例我们会发现和spring boot相结合,实现应用的安全控制这个复杂功能竟会如此简单环境: spring-boot版本号:1.5.4.RELEASE1.示例项目结构[img]http://dl2.iteye.com/upload/attachment/0128/8890/b...
2018-02-12 10:48:31
272
1
原创 spring-security(二)java config加载机制-@EnableGlobalAuthentication
前言 在上一篇文章中通过对EnableWebSecurity注解中的配置类WebSecurityConfiguration的探讨,我们知道了filter各种各样的filter以及鉴权用的AccessDecisionManager是怎么加载进来的,但是具体用来认证的AuthenticationManager怎么加载还没有说明,这篇文章,我们就重点分析下各种各样的AuthenticationMa...
2018-02-11 10:02:09
2284
原创 spring-security(一)java config加载机制-WebSecurityConfiguration
前言: spring security给我们提供了功能非常强大的安全保护机制,在使用时的配置也极其简单,在和spring boot工程集成的时候,简单到只需要我们用一个注解@EnableWebSecurity就可以把需要的过滤器都配置好,可是这一切是怎么发生的呢?在本系列文章的第一篇就让我们结合源码来一探究竟。环境: spring boot 版本:1.5.4.RELEASE ...
2018-01-26 21:52:19
2406
原创 docker swarm获取客户端IP
[size=medium]1.问题概述[/size]最近在项目中遇到一个问题,因为业务要求,需要在服务中获取到客户端IP,但是在项目开发部署过程中发现利用[color=gray]java -jar ***.jar[/color]单独运行服务,或者打成镜像再[color=gray]docker run[/color]启动的服务都可以正确的获取到client IP,但是当采用[color=gray...
2017-11-28 18:25:30
3852
原创 docker swarm-服务发现与负载均衡原理分析
本文主要翻译自[url=https://success.docker.com/article/Docker_Reference_Architecture-_Universal_Control_Plane_2.0_Service_Discovery_and_Load_Balancing]Docker Reference Architecture: Universal Control Plane 2....
2017-11-28 16:49:21
1346
原创 docker registry 批量删除镜像
参考地址 [url=https://github.com/andrey-pohilko/registry-cli]registry delete[/url]registry版本2.01.registry启动时环境变量追加 REGISTRY_STORAGE_DELETE_ENABLED=true [code="sh"]docker run --name registry -e...
2017-10-20 09:51:15
762
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人