shiro用户登录认证

1.用户访问服务器

2.过滤器过滤所有访问的资源,判断用户是否认证  目标位置在这里是登录验证的controller

用户登录没有认证会跳转到这个方法,此方法只判断错误信息,如果错误,会把mv打回到登录页面并显示消息;如果是正确信息,默认会调用过滤器中的回到上一个请求的页面,也就是访问网站的index页面。

3.首次登录没有session,没有认证,跳转到login页面
  
前端

  后台 login.jsp 必须这样写:

原因:之前配置了过滤器,表单过滤器默认了参数名,不能随意更改,包括上面的异常信息的名字shiroLoginFailure

 4。用户填写表单信息,点击提交,后台进行数据认证

  4.1后台会调用shrio提供的抽象类AuthorizingRealm,通过继承,编写我们自己的认证方法,它提供了两个重写方法doGetAuthenticationInfo用户认证和doGetAuthorizationInfo用户授权,现在先理解用户认证。

4.2登录失败 显示密码错误

  流程:通过调用上面的myRealm的验证,会将错误消息存放到request域中,参数名为shiroLoginFailure,通过判断该参数,controller知道该怎么处理错误信息。

4.3登录成功,系统默认跳转到上一次请求的页面,因为如果从login.jsp页面直接跳转到index.jsp页面是拿不到我们存放的,想要展示的数据,所以需要一个重定向来请求controller来获取数据到主页面

前台:

后台:

用户点击提交login.jsp

后台判断正确后,跳转到index页面,取不到数据,所以重定向

请求到controller,controller准备数据,将数据打到主页面上。重点是controller怎么取到数据。

first代表first.jsp页面,使用了resful风格

5.退出,好像这个是有session的,不退出之后不需要登录就可以进来了

退出不需要我们编写代码,只需要过滤器过滤就行了,在过滤器配置

原文地址:https://www.cnblogs.com/19322li/p/11105847.html

时间: 2024-11-08 22:14:11

shiro用户登录认证的相关文章

Java秒杀系统实战系列~整合Shiro实现用户登录认证

摘要: 本篇博文是"Java秒杀系统实战系列文章"的第五篇,在本篇博文中,我们将整合权限认证-授权框架Shiro,实现用户的登陆认证功能,主要用于:要求用户在抢购商品或者秒杀商品时,限制用户进行登陆!并对于特定的url(比如抢购请求对应的url)进行过滤(即当用户访问指定的url时,需要要求用户进行登陆). 内容: 对于Shiro,相信各位小伙伴应该听说过,甚至应该也使用过!简单而言,它是一个很好用的用户身份认证.权限授权框架,可以实现用户登录认证,权限.资源授权.会话管理等功能,在本

radhat Linux 用户登录认证失败

今天客户反映一个问题,ssh不上自己的服务器了,进机房radhat linux本地登录(3级别)的时候发现输入root敲回车的时候出现如下提示: Your account is locked.Maximum amount of failed attempts was reached. 好说,单用户模式下 pam_tally2 -u root  (faillog -u root<查看/var/log/faillog内记录的登陆失败信息>)显示root用户登录失败记录的次数 pam_tally2

OpenVPN 实战3:OpenVPN+MySQL 实现用户登录认证

大纲 一.前言 二.概述 三.具体配置过程 四.总结 注,实战环境 CentOS 5.5 x86_64,软件版本 OpenVPN 2.1,软件下载:http://yunpan.cn/QzT8fGsX8S75a  访问密码 e8e4. 一.前言 在上一篇博客中我们提出一个问题,下面我们来回顾一下: 前面做的实验都是由服务端先生成客户端证书,然后分发到客户端上,让客户端通过证书连接到服务器上.但有时候,这样的分发是比较麻烦的(也不安全).这样,我们可以考虑另外一种方式: 只在服务端制作客户端证书,而

基于jwt的用户登录认证

最近在app的开发过程中,做了一个基于token的用户登录认证,使用vue+node+mongoDB进行的开发,前来总结一下. token认证流程: 1:用户输入用户名和密码,进行登录操作,发送登录信息到服务器端. 2:服务器端查询数据库验证用户名密码是否正确,正确,通过jsonwebtoken生成token,返回给客户端:否则返回错误信息给客户端. 3:通过本地存储存储获取的token信息,并且会跳转到路由指定的页面. 4:当客户端需要请求数据时,发送请求,并且在请求的头文件中添加本地存储的t

springboot整合shiro实现登录认证以及授权

1.添加shiro的依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web- starter</artifactId> <version>1.4.0</version> </dependency> 2.先创建一个Realm public class MyShiroRealm extends Aut

linux PAM 用户登录认证

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段.从本篇开始会总结一些常用的pam模块及其实现的功能,今天讲的是pam_tally2模块. 一.参数与场景 应用场景:设置Linux用户连续N次输入错误密码进行登陆时,自动锁定X分钟或永久锁

PPTP-VPN第二章——使用mysql进行用户登录认证

在上一篇文章中记录了pptp vpn的创建过程和简单实用测试,其中用户名和密码均使用文本数据库/etc/ppp/chap-secrets,小规模用户下,尚可使用这种登陆验证方式,如果用户数多了,则需要将用户登录验证方式修改为查询数据库,在本文中将介绍如何将pptp vpn的用户名和密码认证信息存储在mysql数据库中. 前文传送门:http://ylw6006.blog.51cto.com/470441/1794577 一.安装和配置整合mysql-server和freeradius,和前文一样

关于django用户登录认证中的cookie和session

最近弄django的时候在用户登录这一块遇到了困难,网上的资料也都不完整或者存在缺陷. 写这篇文章的主要目的是对一些刚学django的新手朋友提供一些帮助.前提是你对django中的session和cookie已经有了一定的了解. 我最基本的设想是当用户登陆了网站后,用户访问本网站的其他网页时依旧能识别其身份. 很多教程的方法是在用户的cookie中存储用户名,这种方法当然是非常不安全的. 其实只要我们使用了django中的session,django就会自动在用户的cookie中存储 sess

网站用户登录认证

cookie登录后同域名下的网站保持相同的登录状态. 登录 private void SetAuthCookie(string userId, bool createPersistentCookie){ var ticket = new FormsAuthenticationTicket(2, userId, DateTime.Now, DateTime.Now.AddDays(7), true, "", FormsAuthentication.FormsCookiePath); st