shiro简单demo笔记
shiro,目前我理解为他的作用是权限管理。
建立一个.ini文件
1 [users] 2 user=123456 3 admin=123
用户名=密码
测试类
1 public class HelloWorld { 2 public static void main(String[] args) { 3 Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); 4 SecurityManager securityManager = factory.getInstance(); 5 SecurityUtils.setSecurityManager(securityManager); 6 Subject currentUser = SecurityUtils.getSubject(); 7 UsernamePasswordToken token = new UsernamePasswordToken("admin","123"); 8 try{ 9 currentUser.login(token); 10 System.out.println("身份认证成功"); 11 }catch(AuthenticationException e){ 12 e.printStackTrace(); 13 System.out.println("身份认证失败"); 14 } 15 } 16 }
验证不通过的话,控制台会有报错信息。
如果是连接数据库的话
.ini文件写法
1 [main] 2 jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm 3 dataSource=com.mchange.v2.c3p0.ComboPooledDataSource 4 dataSource.driverClass=com.mysql.jdbc.Driver 5 dataSource.jdbcUrl=jdbc:mysql://localhost:3306/shiro 6 7 dataSource.user=root 8 9 #dataSource.password= 10 11 jdbcRealm.dataSource=$dataSource 12 13 securityManager.realms=$jdbcRealm
这里,我在数据源信息的配置的地方纠结了很久,本来根据shiro教程的写法
1 dataSource=com.mchange.v2.c3p0.ComboPooledDataSource 2 dataSource.driverClassName=com.mysql.jdbc.Driver 3 dataSource.url=jdbc:mysql://localhost:3306/shiro 4 dataSource.useName=root 5 dataSource.password=
控制台一直报错为:
java.lang.IllegalArgumentException: Line argument must contain a key anda value. Only one string token was found.
最后查了资料 发现将配置信息修改后就可以跑通了。
(但为什么上面那种跑不通不是很清楚,感觉可能和c3p0有关系)
后面的测试代码就和之前一样啦,把配置文件名改一下。

浙公网安备 33010602011771号