当前位置:Gxlcms > 数据库问题 > 2.shiro+jdbc+idea+maven数据库

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

时间:2021-07-01 10:21:17 帮助过:24人阅读


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

人气教程排行