博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.shiro+jdbc+idea+maven数据库
阅读量:5170 次
发布时间:2019-06-13

本文共 1482 字,大约阅读时间需要 4 分钟。

注意:如果不配置自定义realm。使用默认,
将会去指定数据库的下‘users’表查询‘userName’和‘password’进行判断

具体的默认配置见:IniRealm类源码。

1)
添加依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.18</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>

2)

添加配置连接:
private JdbcRealm jdbcRealm=new JdbcRealm();
private DruidDataSource druidDataSource=new DruidDataSource();
@Before
public void before(){
druidDataSource.setUrl("jdbc:mysql://localhost:3306/shiro");
druidDataSource.setUsername("root");
druidDataSource.setPassword("123");
druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");

jdbcRealm.setPermissionsLookupEnabled(true);

jdbcRealm.setDataSource(druidDataSource);
}

3)

使用:
@Test
public void testjdbc(){
/*new一个默认安全管理器*/
DefaultSecurityManager securityManager=new DefaultSecurityManager();
/*安全管理器加载外部信息*/
securityManager.setRealm(jdbcRealm);
/*SecurityUtils加载安全管理器*/
SecurityUtils.setSecurityManager(securityManager);
/*Subject是shiro主体对象,通过创建获得它*/
Subject subject=SecurityUtils.getSubject();
/*token传递用户名和密码的域属性*/
UsernamePasswordToken token=new UsernamePasswordToken("aaa","123");
/*使用jdbc作为数据源,那么login会自动到指定数据库下user表去查找username和pasword*/
/*详细源码查看:JdbcRealm类*/
subject.login(token);
/*认证通过输出这个*/
System.out.println("认证通过");
subject.checkRole("admin");
subject.checkPermission("user:list");
System.out.println("授权通过");
}

转载于:https://www.cnblogs.com/PinkManBlog/p/11305136.html

你可能感兴趣的文章
关于opacity、visibility、display属性的一道CSS面试题
查看>>
bzoj2539: [Ctsc2000]丘比特的烦恼
查看>>
软件工程
查看>>
最近的工作 - Action Recognition
查看>>
android 动画效果
查看>>
What is the !! (not not) operator in JavaScript?
查看>>
Zedboard学习(二):zedboard的Linux下交叉编译环境搭建 ...
查看>>
CSS DIV HOVER
查看>>
C++基本语句
查看>>
天干地支的来历
查看>>
「本地搭建」worpress博客系统
查看>>
vue组件,通过props父组件给子组件传值,WTF, 子组件报错undefined???
查看>>
浏览器缓存之Expires Etag Last-Modified max-age详解
查看>>
远离魔咒,见微知著,打造崭新的罗浮宫
查看>>
servlet-02-HTTP协议
查看>>
android优化 清除无效代码 UCDetector
查看>>
8个很实用的在线工具来提高你的Web设计和开发能力
查看>>
POJ 3518 Prime Gap(素数)
查看>>
一些牛人的IOS博客,mark下慢慢学习
查看>>
c语言memset函数用法(转)
查看>>