码迷,mamicode.com
首页 > 数据库 > 详细

2.shiro+jdbc+idea+maven数据库

时间:2019-08-05 20:34:16      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:vat   ini   real   iba   nec   min   user   version   mave   


注意:如果不配置自定义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("授权通过");
}

2.shiro+jdbc+idea+maven数据库

标签:vat   ini   real   iba   nec   min   user   version   mave   

原文地址:https://www.cnblogs.com/PinkManBlog/p/11305136.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!