Shiro会话管理器与验证码实现(十四)
和shiro整合后,使用shiro的session管理,shiro提供sessionDao操作 会话数据。
配置sessionManager
aaarticlea/png;base64,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" alt="" />
注入到securityManager
aaarticlea/png;base64,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" alt="" />
----------------------------------------验证码(自定义验证器)---------------------------------
思路
shiro使用FormAuthenticationFilter进行表单认证,验证校验的功能应该加在FormAuthenticationFilter中,在认证之前进行验证码校验。
需要写FormAuthenticationFilter的子类,继承FormAuthenticationFilter,改写它的认证方法,在认证之前进行验证码校验。
自定义FormAuthenticationFilter
package cn.qlq.springmvc.shiro; import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; public class CustomFormAuthenticationFilter extends FormAuthenticationFilter { //原FormAuthenticationFilter的认证方法
@Override
protected boolean onAccessDenied(ServletRequest request,
ServletResponse response) throws Exception {
//在这里进行验证码的校验 //从session获取正确验证码
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpSession session =httpServletRequest.getSession();
//取出session的验证码(正确的验证码)
String validateCode = (String) session.getAttribute("validateCode"); //取出页面的验证码
//输入的验证和session中的验证进行对比
String randomcode = httpServletRequest.getParameter("randomcode");
if(randomcode!=null && validateCode!=null && !randomcode.equals(validateCode)){
//如果校验失败,将验证码错误失败信息,通过shiroLoginFailure设置到request中
httpServletRequest.setAttribute("shiroLoginFailure", "randomCodeError");
//拒绝访问,不再校验账号和密码
return true;
}
return super.onAccessDenied(request, response);
} }
配置自定义FormAuthenticationFilter
aaarticlea/png;base64,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" alt="" />
注入到Shiro 的Web过滤器
aaarticlea/png;base64,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" alt="" />
在login.action对验证错误 进行解析
aaarticlea/png;base64,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" alt="" />
在登陆页面添加验证码
aaarticlea/png;base64,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" alt="" />
验证码JSP:validatecode.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Random"%>
<%@ page import="java.io.OutputStream"%>
<%@ page import="java.awt.Color"%>
<%@ page import="java.awt.Font"%>
<%@ page import="java.awt.Graphics"%>
<%@ page import="java.awt.image.BufferedImage"%>
<%@ page import="javax.imageio.ImageIO"%>
<%
int width = 60;
int height = 32;
//create the image
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
// set the background color
g.setColor(new Color(0xDCDCDC));
g.fillRect(0, 0, width, height);
// draw the border
g.setColor(Color.black);
g.drawRect(0, 0, width - 1, height - 1);
// create a random instance to generate the codes
Random rdm = new Random();
String hash1 = Integer.toHexString(rdm.nextInt());
System.out.print(hash1);
// make some confusion
for (int i = 0; i < 50; i++) {
int x = rdm.nextInt(width);
int y = rdm.nextInt(height);
g.drawOval(x, y, 0, 0);
}
// generate a random code
String capstr = hash1.substring(0, 4);
//将生成的验证码存入session
session.setAttribute("validateCode", capstr);
g.setColor(new Color(0, 100, 0));
g.setFont(new Font("Candara", Font.BOLD, 24));
g.drawString(capstr, 8, 24);
g.dispose();
//输出图片
response.setContentType("image/jpeg");
out.clear();
out = pageContext.pushBody();
OutputStream strm = response.getOutputStream();
ImageIO.write(image, "jpeg", strm);
strm.close();
%>
在filter配置匿名访问验证码jsp(放行验证码JSP)
aaarticlea/png;base64,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" alt="" />
Shiro会话管理器与验证码实现(十四)的更多相关文章
- shiro会话管理
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...
- tomcat会话之持久化会话管理器
前面提到的标准会话管理器已经提供了基础的会话管理功能,但在持久化方面做得还是不够,或者说在某些情景下无法满足要求,例如把会话以文件或数据库形式存储到存储介质中,这些都是标准会话管理器无法做到的,于是另 ...
- 标准会话管理器——StandardManager
用于保存状态的会话对象已经有了,现在就需要一个管理器来管理所有会话,例如会话id生成.根据会话id找出对应的会话.对于过期的会话进行销毁等等操作.用一句话描述标准会话管理器:提供一个专门管理某个web ...
- 集群增量会话管理器——DeltaManager
DeltaManager会话管理器是tomcat默认的集群会话管理器,它主要用于集群中各个节点之间会话状态的同步维护,由于相关内容涉及到集群,可能会需要一些集群通信相关知识,如果有疑问可结合集群相关章 ...
- xshell 会话管理器快捷键
有没有发现xshell6关闭左边的会话管理器以后,打开就比较麻烦 那么可以自定义一个快捷键来打开: 然后输入一个快捷键 类型选择 菜单-->然后找会话管理器 完事儿 也可以自定义其他快捷键.自己 ...
- Spring Boot Shiro权限管理--自定义 FormAuthenticationFilter验证码整合
思路shiro使用FormAuthenticationFilter进行表单认证,验证校验的功能应该加在FormAuthenticationFilter中,在认证之前进行验证码校验. 需要写FormAu ...
- PHP中SESSION自定义会话管理器
<?php class CustomSession implements SessionHandlerInterface{ private $link; private $lifetime; p ...
- linux启动黑屏或无法进入会话管理器
原因是因为更新软件时删除了/etc中的xserver配置文件,进入livecd将相关文件拷贝即可
- shiro 会话管理
随机推荐
- Js 百分比进度条
[构想] CSS3 + JS CSS3控制进度 利用CSS3中的 @keyframes JS实现百分比 根据CSS来调整,时间 [页面代码] 第一种: 默认直接进入就是下载 CSS代码 body { ...
- MVC 多语言
最近项目需要用到多语言. 研究了一下,也参考了很多技术文章. 这里贴一下参考地址:http://www.cnblogs.com/unintersky/p/3969612.html 主要步骤我这里简述一 ...
- QAU 18校赛 J题 天平(01背包 判断能否装满)
问题 J: 天平 时间限制: 1 Sec 内存限制: 128 MB提交: 36 解决: 9[提交][状态][讨论版][命题人:admin] 题目描述 天平的右端放着一件重量为w的物品.现在有n个重 ...
- 修改 wordpress 后台管理员登录地址
拷贝根目录下的 wp-login.php文件命名为wp-login.php.backup,把原文件重命名为managewp.phpsed -i "s/wp-login.php/managew ...
- BZOJ 4555: [Tjoi2016&Heoi2016]求和 (NTT + 第二类斯特林数)
题意 给你一个数 \(n\) 求这样一个函数的值 : \[\displaystyle f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i} \begin{Bmatrix} i \\ j ...
- Prometheus-operator架构详解
Prometheus是一个开源的系统监视和警报工具.一款非常优秀的监控工具.监控方案:Prometheus 提供了数据搜集.存储.处理.可视化和告警一套完整的解决方案. Prometheus的关键特性 ...
- 深入理解JVM结构
JVM结构探究---- 1.JVM结构示意图 2.JVM运行时数据区 1)程序计数器(Program Counter Register) 程序计数器是用于存储每个线程下一步将执行的JVM指令,如该方法 ...
- ASP.NET Session的实现原理分析
ASP.NET Session的实现原理分析 用户向服务器提交请求时,服务器都会给每个用户分配一个SessionId,保存在用户浏览器的Cookies中,SessionId是全局的,也就是说只要Coo ...
- P3507 GRA-The Minima Game
题目大意: 给出N个正整数,AB两个人轮流取数,A先取.每次可以取任意多个数,直到N个数都被取走.每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大.在这样的情况 ...
- 斯坦福大学公开课机器学习:梯度下降运算的特征缩放(gradient descent in practice 1:feature scaling)
以房屋价格为例,假设有两个特征向量:X1:房子大小(1-2000 feets), X2:卧室数量(1-5) 关于这两个特征向量的代价函数如下图所示: 从上图可以看出,代价函数是一个又瘦又高的椭圆形轮廓 ...