Shiro框架配置-applicationContext里面的(仅提供借鉴)
<!-- 配置自定义realm -->
<bean id="shiroAuthRealm" class="com.sykj.realm.ShiroAuthRealm">
<!-- 配置加密 -->
<property name="credentialsMatcher">
<bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
<property name="hashAlgorithmName" value="MD5"></property> <!-- 加密算法的名称 -->
<property name="hashIterations" value="1024"></property> <!-- 配置加密的次数 -->
</bean>
</property>
</bean>
<!-- 配置安全管理器 -->
<!-- shiro的核心组件:securityManager -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<!-- 配置缓存 -->
<property name="cacheManager" ref="cacheManager" />
<!-- 配置域realm,用户名,密码,角色都保存在域里,完成登录校验、权限校验的自定义JAVA类 -->
<property name="realm" ref="shiroAuthRealm" /> <!-- 步骤4中配置的bean id -->
</bean>
<!-- 配置拦截规则 -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager"/>
<property name="loginUrl" value="/login.html"/>
<property name="successUrl" value="/succes.html"/>
<property name="unauthorizedUrl" value="/unauth.html"/>
<!-- 拦截规则 -->
<property name="filterChainDefinitions">
<value>
/login.html = anon <!-- anon 匿名访问 不登录允许访问-->
/account/login = anon
/** = authc <!-- authc 授权访问(必须登录后才能访问) -->
<!-- roles[角色名] 权限的控制 -->
/account/queryall=roles[admin]
</value>
</property>
</bean>
以下 我自己看得懂的
realm类里面的 任务借鉴时候用
package com.sykj.realm;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.LockedAccountException;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.util.ByteSource;
import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sykj.bean.Account;
import com.sykj.mapper.AccountMapper;
public class ShiroAuthRealm extends AuthorizingRealm{--使用权限框架一定是要继承这个
@Autowired
private AccountMapper accountMapper;
/**
* 访问权限校验
*/
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
// TODO Auto-generated method stub
Account account=(Account) principals.getPrimaryPrincipal();
//根据账号或者id调用service的方法查找该用户的所有角色
Set<String> roles=new HashSet<>();
roles.add(account.getAccname());--这其实是获取权限的 我只是为了验证才写的名字(简单一点 我看得懂)
SimpleAuthorizationInfo info=new SimpleAuthorizationInfo();
info.addRoles(roles);
return info;
}
/**
* 登录校验
*/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken arg0) throws AuthenticationException {
// TODO Auto-generated method stub
UsernamePasswordToken token=(UsernamePasswordToken) arg0;//传过来的token对象
String accname= token.getUsername();//取到账号
QueryWrapper wrapper=new QueryWrapper();
wrapper.eq("accname", accname);
Account account= accountMapper.selectOne(wrapper);
System.out.println(account+"realm里面的account");
if (account ==null) {//数据库里面的数据
throw new UnknownAccountException();//抛出账号不存在的异常
}
if (account.getAcczt().equals("0")) {//如果等于0就是账户被锁定
throw new LockedAccountException();
}
ByteSource bs=ByteSource.Util.bytes("admin");//用传过来的名字当做加盐
//父类 子类
AuthenticationInfo info=new SimpleAuthenticationInfo(account, account.getAccpassword(),bs, getName());
return info;
}
}
Shiro框架配置-applicationContext里面的(仅提供借鉴)的更多相关文章
- shiro框架-配置
才开始学没有什么理解分享一个博客写的比较详细 借鉴大佬的:https://www.cnblogs.com/maofa/p/6407102.html@阿发仔 https://blog.csdn.net ...
- ssm框架配置过程
1.pom.xml配置 1.1<build>标签中配置<plugins>和<resources>,即插件和资源文件 1.2 <properties>标签 ...
- 记录心得-shiro框架demo示例
从懵懂到了解,再到熟悉,是一个进步的过程! 先撸代码,跑起来看效果,再做详细的介绍,开始干活! 1,先列出工程目录结构,自己需要创建对应层级的程序和相关配置文件. 2,导入maven依赖的jar包.打 ...
- shiro框架
Shiro Shiro简介 SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. Authentication:身份认证/登录,验证用 ...
- Spring Boot干货系列:(七)默认日志框架配置
Spring Boot干货系列:(七)默认日志框架配置 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候, ...
- 简单两步快速实现shiro的配置和使用,包含登录验证、角色验证、权限验证以及shiro登录注销流程(基于spring的方式,使用maven构建)
前言: shiro因为其简单.可靠.实现方便而成为现在最常用的安全框架,那么这篇文章除了会用简洁明了的方式讲一下基于spring的shiro详细配置和登录注销功能使用之外,也会根据惯例在文章最后总结一 ...
- shiro框架的四中权限控制方式
https://www.cnblogs.com/cocosili/p/7103025.html 一.在自定义的realm中进行权限控制 在applicationContext.xml文件中添加 /a ...
- Shiro框架 (原理分析与简单实现)
Shiro框架(原理分析与简单实现) 有兴趣的同学也可以阅读我之前分享的:Java权限管理(授权与认证)CRM权限管理 (PS : 这篇博客里面的实现方式没有使用框架,完全是手写的授权与认证,可以 ...
- Shiro权限验证代码记录,正确找到shiro框架在什么地方做了权限识别
权限验证方式的验证代码: org.apache.shiro.web.servlet.AdviceFilter这个类是所有shiro框架提供的默认权限验证实例类的父类 验证代码: public void ...
随机推荐
- vuex 状态管理
npm安装:cnpm install --save vuex 安装完:cnpm install main.js引入: import Vuex from 'vuex' Vue.use(Vuex);
- 全志A33驱动GT911触摸屏
0x00 环境说明: 所使用的开发板为锐尔威视的插针版A33_Vstar 触摸屏驱动IC为GT911 接线参照开发板的TP线路 0x01 修改系统配置文件: 笔者所使用的A33开发板的系统配置文件路径 ...
- 1、写在开头的话——Tinking in Java 绪论之我见
新兵道歉!版式不懂,技术若有错误,请指正,或发我邮箱1300431700@qq.com 不胜感激! 本文力图通过文章总结的形式,阐述自己的观点,迫使自己思考书中精髓,即使跟技术无关! 正文开始! “上 ...
- 转:select2 使用教程(简)
用了这么久的Select2插件,也该写篇文章总结总结.当初感觉Select2不是特别好用,但又找不到比它更好的下拉框插件. 在我的印象里Select2有2个版本,最新版本有一些新的特性,并且更新了一下 ...
- Java文件类型工具类
package *; import java.util.HashMap; import java.util.Map; /** * <p> * <b>FileTypeEnum2& ...
- ubuntu16.04+ROS安装kinectV1
1.安装驱动 安装ROS软件包以下2种方式,任选一种即可,当然全部安装也没有问题 1)使用openni_launch sudo apt-get install ros-kinetic-openni-c ...
- oracle 11g 安装步骤
指定安装路径 输入数据库名(cwbpm),(按照自己要求输入,可以直接用默认库名) 输入密码(自定义):123456 (自定义密码) 下一步 选择“是” 点击完成,开始安装数据库 安装完成后会弹出页面 ...
- C#WFM关于PICBOX 再DIP界面放大125%后,图片显示不完整
外观哪里选中Zoom,就好
- 高校表白APP-冲刺第二天
今天进行了第二次会议. 一.任务: 昨日任务完成基本登录注册修改页面布局. 今日任务完成登录界面的基本框架. 明日任务登录修改注册跳转,解决真机运行闪退. 二.遇到的困难: 登录界面按钮布局位置,输入 ...
- go语言入门教程:基本语法—常量constant
一.常量的使用 1.1 常量声明 常量是一个简单值的标识符,在程序运行时,不会被修改的量. const identifier [type] = value 显式类型定义: const b string ...