1.LoginController

@RequestMapping(method = RequestMethod.POST)
public String login(User user, HttpServletRequest request) {
try {
ubject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(user.getLoginName(), user.getPassword());
token.setRememberMe(true);
String vcode = request.getParameter("verifyCode");
String verifyCode = subject.getSession().getAttribute(Global.SESSION_SECURITY_CODE).toString(); if (vcode.equals(verifyCode)) {
subject.login(token); //启动认证
}
} catch (Exception e) {
e.printStackTrace();
return "modules/sys/sysLogin";
}
return "redirect:index";
}

2.AuthenticationInfo

    @Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) {
// 令牌——基于用户名和密码的令牌
UsernamePasswordToken token = (UsernamePasswordToken) authcToken; // 令牌中可以取出用户名
String username = token.getUsername();
String password = String.valueOf(token.getPassword()); // 让shiro框架去验证账号密码
if (!StringUtils.isEmpty(username)) { User record = new User();
record.setLoginName(username); User user = userService.queryOne(record); if (null != user) {
String pwdEncrypt = CipherUtil.createPwdEncrypt(password, username);
if (user.getPassword().equals(pwdEncrypt)) {
AuthenticationInfo info = new SimpleAuthenticationInfo(user.getLoginName(), password,
getName());
if (info != null) {
UserUtils.setSession(Global.SESSION_USER, user);
}
return info;
} else {
throw new IncorrectCredentialsException(); /* 错误认证异常 */
}
} else {
throw new UnknownAccountException(); /* 找不到帐号异常 */
}
} else {
throw new AuthenticationException();
}
}

shiro登陆认证的更多相关文章

  1. Spring集成shiro做登陆认证

    一.背景 其实很早的时候,就在项目中有使用到shiro做登陆认证,直到今天才又想起来这茬,自己抽空搭了一个spring+springmvc+mybatis和shiro进行集成的种子项目,当然里面还有很 ...

  2. Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理

    本文是接着上篇博客写的:Spring boot 入门(三):SpringBoot 集成结合 AdminLTE(Freemarker),利用 generate 自动生成代码,利用 DataTable 和 ...

  3. Shiro入门之一 -------- Shiro权限认证与授权

    一  将Shirojar包导入web项目 二 在web.xml中配置shiro代理过滤器 注意: 该过滤器需要配置在struts2过滤器之前 <!-- 配置Shiro的代理过滤器 -->  ...

  4. Shiro的认证和权限控制

    权限控制的方式 从类别上分,有两大类: - 认证:你是谁?–识别用户身份. - 授权:你能做什么?–限制用户使用的功能. 权限的控制级别 从控制级别(模型)上分: - URL级别-粗粒度 - 方法级别 ...

  5. 学习Spring Boot:(十三)配置 Shiro 权限认证

    经过前面学习 Apache Shiro ,现在结合 Spring Boot 使用在项目里,进行相关配置. 正文 添加依赖 在 pom.xml 文件中添加 shiro-spring 的依赖: <d ...

  6. springboot+mybatis+shiro——登录认证和权限控制

    转载:https://z77z.oschina.io/ 一.引入依赖 shiro-all包含shiro所有的包.shiro-core是核心包.shiro-web是与web整合.shiro-spring ...

  7. Shiro身份认证---转

    目录 1. Shro的概念 2. Shiro的简单身份认证实现 3. Shiro与spring对身份认证的实现 前言: Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境 ...

  8. Shiro身份认证、盐加密

    目的: Shiro认证 盐加密工具类 Shiro认证 1.导入pom依赖 <dependency> <groupId>org.apache.shiro</groupId& ...

  9. 00【笔记】 Shiro登陆过滤提示信息

    Shiro登陆过滤 提示信息 package top.yangbuyi.system.shiro; import com.alibaba.fastjson.JSONObject; import org ...

随机推荐

  1. 吴恩达+neural-networks-deep-learning+第二周作业

    Logistic Regression with a Neural Network mindset v4 简单用logistic实现了猫的识别,logistic可以被看做一个简单的神经网络结构,下面是 ...

  2. 【leetcode】1233. Remove Sub-Folders from the Filesystem

    题目如下: Given a list of folders, remove all sub-folders in those folders and return in any order the f ...

  3. k8b部署prometheus+grafana

    来源: https://juejin.im/post/5c36054251882525a50bbdf0 https://github.com/redhatxl/k8s-prometheus-grafa ...

  4. yum 安装 mongodb

    1 .添加阿里源 vi /etc/yum.repos.d/mongodb.repo [mongodb-org] name=MongoDB Repository baseurl=http://mirro ...

  5. 什么是iframe及作用是什么?

    一. iframe是什么及作用 iframe是嵌入式框架, 是html标签, 还是一个内联元素, iframe 元素会创建包含另外一个文档的内联框架(即行内框架) . 说白了, iframe用来在页面 ...

  6. ASE高级软件工程 第一次结对作业

    黄金点游戏Bot Bot8前来报道 1.问题定义 a) 问题描述 N个玩家,每人写一个0~100之间的有理数 (不包括0或100),提交给服务器,服务器在当前回合结束时算出所有数字的平均值,然后乘以0 ...

  7. JavaWeb_(SSH论坛)_五、帖子模块

    基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块 传送门 回复帖子 分析回 ...

  8. Jmeter -- 循环控制器 -- 控制请求执行次数

    目的: 登录请求 -- 执行一次 查询请求 -- 执行多次 步骤: 1. 添加循环控制器,按照下图层级所示: 2. 配置线程并发数,和循环控制器循环次数

  9. python 安装-ERROR---Unable to find vcvarsall.bat

    系统配置:Windows10 x64, Visual Studio 2017, Python2.7.1 报错信息:error: Unable to find vcvarsall.bat 报错原因:在生 ...

  10. Linux下运行scala语言的jar包

    1.新建project 2.打包 3.linux下运行jar包 #First.jar为jar包名,Test为主类名 [root@FI-2 Desktop]# spark-submit First.ja ...