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有关系)

后面的测试代码就和之前一样啦,把配置文件名改一下。

 

posted @ 2015-11-19 15:37  码码怡  阅读(190)  评论(0)    收藏  举报