首发地址:https://www.guitu18.com/post/2019/07/28/44.html 本篇是Shiro系列第二篇,使用Shiro基于Redis实现分布式环境下的Session共享.在讲Session共享之前先说一下为什么要做Session共享. 为什么要做Session共享 什么是Session 我们都知道HTTP协议(1.1)是无状态的,所以服务器在需要识别用户访问的时候,就要做相应的记录用于跟踪用户操作,这个实现机制就是Session.当一个用户第一次访问服务器的时候,服…
首发地址:https://www.guitu18.com/post/2019/07/26/43.html 核心概念 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序. 上面这段话来自百度百科,是不是非常官方,好像说的很明白但是又好像什么都没说的样子,到底是个啥呀.想要快速理解并使用Shiro先要从最重要的三大概念入手. Subject…
本篇是Shiro系列第三篇,Shiro中的过滤器初始化流程和实现原理.Shiro基于URL的权限控制是通过Filter实现的,本篇从我们注入的ShiroFilterFactoryBean开始入手,翻看源码追寻Shiro中的过滤器的实现原理. 初始化流程 ShiroFilterFactoryBean实现了FactoryBean接口,那么Spring在初始化的时候必然会调用ShiroFilterFactoryBean的getObject()获取实例,而ShiroFilterFactoryBean也在…
其实关于Shiro的一些学习笔记很早就该写了,因为懒癌和拖延症晚期一直没有落实,直到今天公司的一个项目碰到了在集群环境的单点登录频繁掉线的问题,为了解决这个问题,Shiro相关的文档和教程没少翻.最后问题解决了,但我觉得我也是时候来做一波Shiro学习笔记了. 本篇是Shiro系列第四篇,Shiro中的过滤器初始化流程和实现原理.Shiro基于URL的权限控制是通过Filter实现的,本篇从我们注入的ShiroFilterFactoryBean开始入手,翻看源码追寻Shiro中的过滤器的实现原理…
明确需求 在使用Shiro的时候,鉴权失败一般都是返回一个错误页或者登录页给前端,特别是后台系统,这种模式用的特别多.但是现在的项目越来越多的趋向于使用前后端分离的方式开发,这时候就需要响应Json数据给前端了,前端再根据状态码做相应的操作.那么Shiro框架能不能在鉴权失败的时候直接返回Json数据呢?答案当然是可以. 其实Shiro的自定义过滤器功能特别强大,可以实现很多实用的功能,向前端返回Json数据自然不在话下.通常我们没有去关注它是因为Shiro内置的一下过滤器功能已经比较全了,后台…
原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache的一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架.它可以实现如下的功能:1.验证用户2.对用户执行访问控制,如:判断用户是否具有角色admin,判断用户是否拥有访问的资源权限.3.在任何环境下使用SessionA…
一.shiro简介      shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证.权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架. 以下是你可以用 Apache Shiro所做的事情: (1)验证用户. (2)对用户执行访问控制,如: 判断用户是否拥有角色admin,判断用户是否拥有访问的权限. (3)在任何环境下使用Session API.例如CS程序. (4)可以使用多个用户数据源.例如一个是oracle用户库,另外一个是mys…
上篇实现了 LINUX中NGINX反向代理下的TOMCAT集群(http://www.cnblogs.com/yuanjava/p/6850764.html) 这次我们在上篇的基础上实现session 共享问题 Nginx机器:192.168.1.108 两台tomcat机器分别是:192.168.1.168 192.168.1.178 一:测试session共享问题 在原index.jsp页面添加如下代码 SessionId:<%= session.getId() %> <% Stri…
Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享 ============================= 蕃薯耀 2017年11月27日 http://www.cnblogs.com/fanshuyao/ 代码美化版或附件下载见:http://fanshuyao.iteye.com/blog/2400975 一.Session共享使用tomcat-cluster-redis-session-manager插件实现 插件地址见:https://g…
Redis 主从复制各种环境下测试 测试环境: Linux ubuntu 3.11.0-12-generic 2GB Mem 1 core of Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz Redis 2.6.13 以下 R1 表示master, R2表示slave 配置采用运维组标准配置,默认主从配置一样,在从节点启动后设置为slave R1: 127.0.0.1 6378 R2: 127.0.0.1 6379 0. 初始情况下各节点info情况(部分有用信…
1.Redis概述: 2.Redis在windows环境下的安装: 下载地址:https://github.com/dmajkic/redis/downloads,选取其中一个zip压缩包:…
一.Shiro介绍 Apache Shiro 是Java 的一个安全框架.Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境.Shiro 可以帮助我们完成:认证.授权.加密.会话管理.与Web 集成.缓存等. 既然shiro将安全认证相关的功能抽取出来组成一个框架,使用shiro就可以非常快速的完成认证.授权等功能的开发,降低系统成本. shiro使用广泛,shiro可以运行在web应用,非web应用,集群分布式应用中越来越多的用户开始使…
shiro是apache下的一个项目,和spring security类似,用于用户权限的管理‘ 但从易用性和学习成本上考虑,shiro更具优势,同时shiro支持和很多接口集成 用户及权限管理是众多系统都需要解决的问题,采用各种不同的方式均可实现.在比较出名的用户权限控制框架中 spring security 和apache shiro 位居前列.但由于spring security使用相对复杂,学习成本较高故不被众多开发人员采用.而apache shiro则在使用上较为简单灵活且容易学习,故…
1 权限管理1.1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理包括用户身份认证和授权两部分,简称认证授权.对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问. 1.2 用户身份认证1.2.1 概念 身份认证,就是判断一个用户是否为合法用户的处理过程.最常用的简单身份认证方式是系统通过核对用户输入的用户名…
一.什么是Shiro Apache Shiro是一个强大易用的java安全框架,提供认证.授权.加密和会话管理等功能 · 认证:用户身份识别,俗称“登录”: · 授权:访问控制 · 密码加密:保护或隐藏数据防止被偷窥 · 会话管理:用户相关的时间敏感的状态(存疑) 二.shiro架构 ·核心组件:Subject.SecurityManager.Reamls ·Subject:即“当前操作用户”,并不仅仅指人,也可以是第三方进程.后台账户(Daemon Account) ·SecurityMana…
http://blog.csdn.net/facekbook/article/details/54962975 shiro和web项目整合,实现类似真实项目的应用 web项目中认证 web项目中授权 shiro缓存 sessionManager使用 验证码功能实现 记住我功能实现 web项目中认证 实现方式 修改CustomRealm 的 doGetAuthenticationInfo 方法,从数据库中获取用户信息,CustomRealm 返回查询到的用户信息,包括(加密后的密码字符串和salt…
一.说明 之前介绍了Linux环境下Redis的安装,这次介绍一下Windows环境下Redis的安装,首先要讲的是,Redis官方只支持Linux,还好 Microsoft Open Tech group 开发了windows版本的Redis,github地址: https://github.com/MicrosoftArchive/redis ,已经发布了很多个release版本,截至目前已经发布到了 v-3.2.100 . 官网截图: github截图: 二.下载与安装 最新版本是3.2.…
一.前言 nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存.web server负载均衡等功能,由于其轻量级.高性能.高可靠等特点在互联网项目中有着非常普遍的应用,相关概念网上有丰富的介绍.分布式web server集群部署后需要实现session共享,针对 tomcat 服务器的实现方案多种多样,比如 tomcat cluster session 广播.nginx IP hash策略.nginx sticky module等方案,本文主要介绍了使用 redis…
一.关于Redis Redis最为一款开源的key-value存储系统,自推出到现在一直受到编程人员的喜爱.它支持存储多种value类型,String .List .Set .Zset .Hash.这些数据类型都支持push/pop.add/remove 及取交集.并集.差集等操作,这些操作都是原子性的,而且Redis还有各种不同的排序方式. Redis 的数据都是缓存在内存中,这样做是为了保证效率,而且也支持数据的磁盘持久化,目前Redis 不仅可以部署Linux 而且Windows 同样可以…
一.下载Windows版Redis 打开https://github.com/MicrosoftArchive/redis/tags地址,找到最新版Redis安装包(Redis-x64-3.2.100.zip),下载解压 二.安装Redis 1.找到解压的Redis目录,按Shift+鼠标右键,在右键菜单中打开"在此处打开命令窗口",打开cmd窗口 2.启动 运行redis-server redis.windows.conf命令,出现下图即表示启动成功 三.开启远程访问 此时Redis…
一.为什么要使用Session共享? 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的各个模块中都是可以登录使用的.各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可.但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这就是一次登录,全部通行的问题,映射到技术上,其实就是各个…
1.  下载Redis-Windows版本 Redis官网下载页面: http://redis.io/download Windows下Redis项目: https://github.com/MSOpenTech/redis 在releases页面找到并下载最新的ZIP包: https://github.com/MSOpenTech/redis/releases 2.  解压安装 加压下载后的文件 Redis-x64-3.2.100.zip 到 Redis-x64-3.2.100 目录. 例如:…
1.搭建主从复制 第一步:将Redis拷贝到虚拟机上的指定文件夹内,此Redis作为主服务 第二步:将Redis拷贝到本机的指定文件夹内,此Redis作为从服务 第三步:修改主服务的配置文件(redis.conf) 第四步:修改从服务的配置文件(redis.conf) 2.启动服务 第一步:首先启动主服务:通过cmd跳转到主服务所在的文件夹下,使用redis-server.exe redis.conf命令启动主服务(当然也可以双击redis-server.exe启动主服务,通过redis-ser…
1. 安装redis服务 1.1 检查安装依赖程序 yum install gcc-c++yum install -y tclyum install wget 1.1.1 下载redis安装包 (或者直接通过yum进行安装) ① 官网下载 http://redis.io ② wget命令 wget http://download.redis.io/redis-stable.tar.gz 1.1.2 解押 tar -zxvf redis-stable.tar.gz 1.1.3 编译安装 cd re…
搭建主从复制 1.安装软件 下载Redis-x64-3.2.100.zip:https://github.com/MicrosoftArchive/redis/releases 第一步:将Redis拷贝到虚拟机上的指定文件夹内,此Redis作为主服务 redis加入到Windows 服务 cmd命令安装命令:redis-server.exe --service-install redis.windows.conf --loglevel verbose 卸载命令:redis-server --se…
本次开发环境:idea2016.3.4 +jdk1.8+maven3.3.9+redis+springboot+jedis 本文中的项目使用Maven来管理项目依赖,使用Spring Session和Redis的组合来代替原有的HttpSession实现Session在不同项目之间的共享 项目结构: 构建Spring Boot pom文件如下 <modelVersion>4.0.0</modelVersion> <groupId>com.cky.sessionshare…
1 集群搭建 https://www.cnblogs.com/yjq520/p/7685941.html 2 session共享 https://blog.csdn.net/tuesdayma/article/details/81387862 附上tomcat/conf/server.xml中需要加入的代码 <Valve className="tomcat.request.session.redis.SessionHandlerValve" /> <Manager c…
redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set –有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcach…
Redis概念 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追…
一直想记录工作中遇到的问题和解决的方法,奈何没有找到一方乐土,最近经常反思,是否需要记录平时的点滴,后台还是决定下定决心记录一些,以便以后用到的时候找不着,实现这样的一个功能主要也是业务所需要的. 需求:要求统计所有会员在线人数,并根据会员在线状态同步改变人数. 之前用户登录使用session去控制,那么可以通过session进行在线用户人数统计,后来实现无状态不在依赖session作为用户在线的标准,使用Redis替换了Session,那么用户直接退出也好做,但是会存在用户直接关闭页面的情况,…