【Hexo博客折腾】BlueLake博客主题的详细配置

开始之前

BlueLake主题写了有一段时间了,经常会有朋友发消息给我问一些配置的问题,这篇博文主要也是为了解决这些问题。主题以简洁轻量自居(实则简陋),去掉了Jquery和Fancybox,用原生JS实现站内搜索功能。这个主题只是一个小小的雏形,期待您来帮助它成长。

阅读更多

【Java知识梳理】对象的拷贝与原型模式

1. 拷贝的概念

对象的拷贝(复制,克隆):根据原来的对象”复制”一份 属性、状态一致的新对象。
浅拷贝:只”复制”对象的第一层属性,即:浅拷贝将返回该类的新的实例,该实例的引用类型对象共享。
深拷贝:对象的属性进行递归”复制”,即:深拷贝也会返回该类的新的实例,但是该实例的引用类型属性也是拷贝的新对象。

阅读更多

【环境配置】Redis与MySQL多实例配置

最近由于工作的需要,需要在同一台服务器上搭建两个RedisMySQL的实例。
多实例:就是在一台机器上面开启多个不同的端口(如Redis6379/6380MySQL3306/3307等),运行多个服务进程;公用一套安装程序,使用不同的配置文件,数据文件。

阅读更多

【安全认证】基于Shiro前后端分离的认证与授权(三.前端篇)

前两篇我们整合了SpringBoot+Shiro+JWT+Redis实现了登录认证,接口权限控制,接下来将要实现前端Vue的动态路由控制。

1. 前端权限控制思路(Vue)

前端的权限控制,不同的权限对应着不同的路由,同时菜单也需根据不同的权限,异步生成。
先回顾下整体流程:

阅读更多

【安全认证】基于Shiro前后端分离的认证与授权(二.授权篇)

前面我们整合了SpringBoot+Shiro+JWT实现了登录认证,但还没有实现权限控制,这是接下来的工作。

阅读更多

【安全认证】基于Shiro前后端分离的认证与授权(一.认证篇)

1. 开始之前

1.1 技术选型

选用SpringBoot+Shiro+JWT实现登录认证,结合Redis服务实现token的续签,前端选用Vue动态构造路由及更细粒度的操作权限控制。

  • 前后端分离项目中,我们一般采用的是无状态登录:服务端不保存任何客户端请求者信息,客户端需要自己携带着信息去访问服务端,并且携带的信息可以被服务端辨认。
  • Shiro默认的拦截跳转都是跳转url页面,拦截校验机制恰恰使用的session;而前后端分离后,后端并无权干涉页面跳转。
  • 因此前后端分离项目中使用Shiro就需要对其进行改造,我们可以在整合Shiro的基础上自定义登录校验,继续整合JWT(或者oauth2.0等),使其成为支持服务端无状态登录,即token登录。
  • Vue项目中,只需要根据登录用户的权限信息动态的加载路由列表就可以动态的构造出访问菜单。

阅读更多

【安全认证】Shiro安全框架入门

1. 初识Shiro

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密、会话管理、与Web集成、缓存等。

  • 具体来说,满足对如下元素的支持:

    • 用户,角色,权限(仅仅是操作权限,数据权限必须与业务需求紧密结合),资源(url)。
    • 用户分配角色,角色定义权限。
    • 访问授权时支持角色或者权限,并且支持多级的权限定义。

阅读更多

【Redis】基于Redis的分布式锁实现

SETNX命令简介

  • SETNX key value返回(1:key的值被设置,0:key的值没被设置),将key的值设为value,并且仅当key不存在。
  • 锁的key为目标数据的唯一键,value为锁的期望超时时间点;
  • 基于Redis实现的分布式锁,主要基于redissetnx(set if not exist)命令;

阅读更多

【ElasticStack】Beats+Logstash+Elasticsearch+Kibana基础整合

1. ElasticStack的组成

  1. Beats:数据采集
  2. LogStash: 数据处理
  3. ElasticSearch(核心引擎): 数据存储、查询和分析
  4. Kibana: 数据探索与可视化分析

阅读更多

【ElasticStack】ElasticSearch聚合分析与数据建模

1. ElasticSearch中的聚合分析

聚合分析,英文Aggregation,是ES除了搜索功能之外提供的针对ES数据进行统计分析的功能。

  • 特点:
    • ①功能丰富,可满足大部分分析需求;
    • ②实时性高,所有计算结果实时返回。
  • 基于分析规则的不同,ES将聚合分析主要划分为以下4种:
    1. Metric: 指标分析类型,如:计算最值,平均值等;
    2. Bucket: 分桶类型,类似于group by语法,根据一定规则划分为若干个桶分类;
    3. Pipeline: 管道分析类型,基于上一级的聚合分析结果进行再分析;
    4. Matrix: 矩阵分析类型。

阅读更多