在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤
器专门为我们处理登出请求:

一.shiro会话管理器

shiro中也提供了类似于web中的session的机制

/**
* 跳转到系统管理的主界面
* @return
*/
@RequestMapping("/index")
public String index(Model model){
//可以通过Subject获取shiro会话中的用户身份对象
Users user = (Users)SecurityUtils.getSubject().getPrincipal();
List<Module> oneModules = userService.queryUsersModules(user);
model.addAttribute("oneModules",oneModules);
return "index";
}
/**
* 用户登录的请求
* @param user
* @return
*/
@RequestMapping("/login")
public String login(Users user, Model model, HttpSession session){
//获取用户的主体对象就可以了
Subject subject = SecurityUtils.getSubject();
//封装用户名和密码的认证信息对象
UsernamePasswordToken upt = new UsernamePasswordToken(user.getUsername(),user.getPassword());
//进行登录认证
try {
subject.login(upt);
}catch (Exception e){
e.printStackTrace();
model.addAttribute("error","用户名或者密码错误");
return "login";
}
return "redirect:/user/index.do";
}
tomcat的session可以控制超时时间,Shiro的session也可以控制。如果需要控制类似于超时时间这些Session的属性,就需要在shiro的主配置文件中配置SessionManager对象了.

注意:对index.do请求不拦截

二.登出

首先需要在用户登录后的主界面写一个登出的链接

然后在控制器中实现登出的方法,注意在此方法中不用写任何逻辑:
在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤器专门为我们处理登出请求:

三.shiro标签库的使用

shiro为我们提供了一些简单的标签可以在jsp中使用,可以用来控制根据用户权限做一些操作使用标签库,首先要导入shiro的标签库:

tologin.do  跳转到登陆界面

/**
* 跳转到登录界面
* @return
*/
@RequestMapping("tologin")
public String tologin(){
return "login";
}

在web中使用shiro(会话管理,登出,shiro标签库的使用)的更多相关文章

  1. Shiro会话管理器与验证码实现(十四)

    和shiro整合后,使用shiro的session管理,shiro提供sessionDao操作 会话数据. 配置sessionManager

  2. shiro会话管理

    Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...

  3. 白帽子讲web安全——认证与会话管理

    在看白帽子讲web安全,刚好看到认证与会话管理:也就是我们在平常渗透测试中遇到最多的登录页面,也即是用户名和密码认证方式,这是最常见的认证方式. 了解两个概念:认证和授权 1):认证的目的是为了认出用 ...

  4. Web安全开发指南--会话管理

    1.会话管理 3.1.会话管理安全规则 1 避免在URL携带session id. 2 使用SSL加密通道来传输cookie. 3 避免在错误信息和调试日志中记录session id. 4 使用框架自 ...

  5. JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库

    JSTL标签简介 ===================================================================== JSTL的全称是JavaServer Pa ...

  6. PHP中SESSION自定义会话管理器

    <?php class CustomSession implements SessionHandlerInterface{ private $link; private $lifetime; p ...

  7. Web安全测试指南--会话管理

    会话复杂度: 5.3.2.会话预测: 5.3.3.会话定置: 5.3.4.CSRF: 5.3.5.会话注销: 5.3.6.会话超时:

  8. shiro 会话管理

  9. 2017.2.9 开涛shiro教程-第十章-会话管理(一)

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 第十章 会话管理(一) 10.1 会话 shiro提供的会话可以用 ...

随机推荐

  1. Spring 中 用 ${xxx} 读取properties文件的说明

    properties 如果在 spring 中通过 PropertyPlaceholderConfigurer 加载,当spring 中需要 用到 properties 中的一些 key 和value ...

  2. 微信小程序与H5数据传递

    这的场景是 小程序webview 加载 H5应用 需求点: 1. 小程序的登录code 需要与H5应用的sessionId建立绑定关系 2.H5内发起微信小程序支付,支付参数传递到小程序,支付结果传递 ...

  3. 干货:python面对对象类继承简介

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:python视觉算法 PS:如有需要Python学习资料的小伙伴可以加 ...

  4. SpringBoot连接Redis服务出现DENIED Redis is running in protected mode because protected mode is enabled

    修改redis.conf,yes 改为 no

  5. docker 概览 (1)

    Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使 ...

  6. week homework: 大家来找茬

    上周课程主题为用户体验,每位同学也根据自己使用APP的体验,例举出一些手机或电脑客户端软件的bug或用户体验非常不好的地方: Tianfu: GitHub.com:界面不够直观,有许多功能不知道入口在 ...

  7. stand up meeting 12-14

    今日更新: 项目的refactor部分均已经基本完成.答题界面和结果展示界面与code hunters team项目的merge部分也已经完成. 当然在这其中我们也遇到了一个小问题,在背单词模块中的词 ...

  8. MySQL服务端恶意读取客户端文件漏洞 (DDCTF2019和国赛均涉及到这个漏洞)

    mysql协议中流程和go语言实现的恶意mysql服务器:https://blog.csdn.net/ls1120704214/article/details/88174003 poc :https: ...

  9. MVC-路由扩展-限制浏览器

    根据路由原理,MVC每次都会走获取路由上下文数据. 自定义Route 调用,以及完善其他代码 运行结果,当在谷浏览器执行时:

  10. react: typescript integrate withRouter

    define interface: export interface INav { nav: string } export interface IModuleItem { state?: strin ...