
Shiro
遇君行
天道酬勤,业道酬精。
展开
-
Web项目Shiro总结及源码(十六)
shiro过虑器 过滤器简称 对应的java类 anon org.apache.shiro.web.filter.authc.AnonymousFilter authc org.apache.shiro.web.filter.authc.FormAuthenticationFilter authcBasic org.apache.shiro.web.f原创 2020-05-14 17:49:35 · 182 阅读 · 0 评论 -
shiroWeb项目-记住我(自动登陆实现)(十五)
用户登陆选择“自动登陆”本次登陆成功会向cookie写身份信息,下次登陆从cookie中取出身份信息实现自动登陆。用户身份实现java.io.Serializable接口便于反序列化package cn.qlq.springmvc.pojo;import java.util.Iterator;import java.util.List;import com.sun.org.apache.bcel.internal.generic.NEW;/** * 用户身份信息,存入ses.原创 2020-05-14 16:39:30 · 313 阅读 · 0 评论 -
Shiro会话管理器与验证码实现(十四)
和shiro整合后,使用shiro的session管理,shiro提供sessionDao操作 会话数据。配置sessionManager注入到securityManager----------------------------------------验证码(自定义验证器)---------------------------------思路shiro使用FormAuthenticationFilter进行表单认证,验证校验的功能应该加在FormAuthenticatio.原创 2020-05-14 15:45:39 · 279 阅读 · 0 评论 -
Shiro缓存(十三)
使用缓存,可以解决每次访问请求都查数据库的问题。第一次授权后存入缓存。缓存流程shiro中提供了对认证信息和授权信息的缓存。shiro默认是关闭认证信息缓存的,对于授权信息的缓存shiro默认开启的。主要研究授权信息缓存,因为授权的数据量大。用户认证通过。该 用户第一次授权:调用realm查询数据库该 用户第二次授权:不调用realm查询数据库,直接从缓存中取出授权信息(权限标识符)。-------------------------------------使用ehcac..原创 2020-05-14 14:21:05 · 342 阅读 · 0 评论 -
Shiro的三种授权(十二)
前提就是在Realm的授权方法中查询出权限并返回List<String>形式 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // 从 principals获取主身份信息 // 将getPrimaryPrincipal方法返回值转为真实身份类型(在上边的doGetAuthentication...原创 2020-05-11 10:34:54 · 577 阅读 · 0 评论 -
shiroWeb项目-授权(十一)
使用PermissionsAuthorizationFilter在applicationContext-shiro.xml中配置url所对应的权限。测试流程:1、在applicationContext-shiro.xml中配置filter规则 <!--商品查询需要商品查询权限 --> /items/queryItems.action =perms[item:query]2、用户在认证通过后,请求/items/queryItems.action...原创 2020-05-09 18:23:14 · 212 阅读 · 0 评论 -
shiroWeb项目-认证及MD5认证信息在页面显示(十)
realm设置完整认证信息// realm的认证方法,从数据库查询用户信息 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { // token是用户输入的用户名和密码 // 第一步从token中取出用户名 String userCode .原创 2020-05-09 10:34:57 · 129 阅读 · 0 评论 -
shiroWeb项目-登陆与退出实现(九)
原理使用FormAuthenticationFilter过虑器实现 ,原理如下:将用户没有认证时,请求loginurl进行认证,用户身份和用户密码提交数据到loginurlFormAuthenticationFilter拦截住取出request中的username和password(两个参数名称是可以配置的)FormAuthenticationFilter调用realm传入一个token(username和password)realm认证时根据username查询用户信息(在Act.原创 2020-05-09 10:32:59 · 277 阅读 · 1 评论 -
shiro与Web项目整合-Spring+SpringMVC+Mybatis+Shiro(八)
Jar包-----------------------------Web.xml中配置shiro的filter------------------------------------<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javae..原创 2020-05-09 09:18:17 · 188 阅读 · 0 评论 -
shiro授权及自定义realm授权(七)
1.授权流程2. 三种授权方法 Shiro支持三种方式的授权:编程式:通过写if/else授权代码块完成:Subject subject = SecurityUtils.getSubject();if(subject.hasRole(“admin”)) {//有权限} else {//无权限}注解式:通过在执行的J...原创 2020-05-08 16:44:13 · 175 阅读 · 0 评论 -
shiro自定义realm支持MD5算法认证(六)
1.1 散列算法通常需要对密码 进行散列,常用的有md5、sha,对md5密码,如果知道散列后的值可以通过穷举算法,得到md5密码对应的明文。建议对md5进行散列时加salt(盐),进行加密相当 于对原始密码+盐进行散列。(盐就相当于加入一个随机数)正常使用时散列方法:在程序中对原始密码+盐进行散列,将散列值存储到数据库中,并且还要将盐也要存储在数据库中。...原创 2020-05-08 16:13:35 · 213 阅读 · 0 评论 -
shiro自定义realm认证(五)
上一节介绍了realm的作用:realm:需要根据token中的身份信息去查询数据库(入门程序使用ini配置文件),如果查到用户返回认证信息,如果查询不到返回null。token就相当于是对用户输入的用户名和密码的一个封装。下面就是创建一个用户名密码token:UsernamePasswordToken token = new UsernamePasswordToken("zhangsa...原创 2020-05-08 15:21:08 · 200 阅读 · 0 评论 -
Shiro简介及入门(四)
1.1 什么是shiroshiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,sh...原创 2020-05-08 15:20:06 · 155 阅读 · 0 评论 -
基于URL的权限管理(三)
思路:先创建一个专门的类ActiveUser用于存储用户登录的信息,主要用于存储用户id,账户,名称,菜单,权限。认证拦截器主要是查看用户是否已登陆,如果没有转发到登陆界面,用户用账户跟密码登录时候先验证账户密码认证。如果正确登陆之后进入授权拦截器中,授权拦截器主要查看session域中用户的菜单与权限(如果其权限满足能访问资源就放行)。用户每点一次按钮都会访问一个URL,都会进行权限的判...原创 2020-05-08 10:44:25 · 637 阅读 · 0 评论 -
权限管理解决方案-----粗粒度与细粒度(二)
权限管理解决方案1.1 什么是粗粒度和细粒度权限粗粒度权限管理,对资源类型的权限管理。资源类型比如:菜单、url连接、用户添加页面、用户信息、类方法、页面中按钮。。粗粒度权限管理比如:超级管理员可以访问户添加页面、用户信息等全部页面。部门管理员可以访问用户信息页面包括 页面中所有按钮。细粒度权限管理,对资源实例的权限管理。资源实例就资源类型的具体化,比...原创 2020-05-08 10:33:28 · 1309 阅读 · 0 评论 -
权限管理原理知识(一)
1.1 什么是权限管理 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括用户认证和授权两部分。1.2 用户认证1.2.1 概念 用户认证,用户去访问系统,系统要验证用户身份的合法性。最常用...原创 2020-05-08 10:32:07 · 5342 阅读 · 0 评论