首页 > 数据库技术 > 详细

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

时间:2019-08-05 21:18:40      阅读:114      评论:0      收藏:0      [点我收藏+]


注意:如果不配置自定义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数据库

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!