shiro连接mysql数据库小例子

来源:互联网 发布:手机c语言编译器 编辑:程序博客网 时间:2024/06/05 04:30

数据库表名一定是users,账户和密码一定是 username 和 password

maven

  <!-- 添加 shiro需要一些包 开始 -->      <dependency>        <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>            <scope>test</scope>      </dependency>      <dependency>           <groupId>org.apache.shiro</groupId>           <artifactId>shiro-core</artifactId>           <version>1.2.4</version>      </dependency>      <dependency>          <groupId>org.slf4j</groupId>          <artifactId>slf4j-log4j12</artifactId>          <version>1.7.12</version>      </dependency>       <dependency>          <groupId>log4j</groupId>          <artifactId>log4j</artifactId>          <version>1.2.17</version>     </dependency>    <!-- 添加 shiro需要一些包 结束 -->    <!-- 添加数据源 开始 -->      <dependency>          <groupId>c3p0</groupId>          <artifactId>c3p0</artifactId>          <version>0.9.1.2</version>      </dependency>      <dependency>          <groupId>commons-logging</groupId>          <artifactId>commons-logging</artifactId>          <version>1.2</version>      </dependency>      <dependency>          <groupId>mysql</groupId>          <artifactId>mysql-connector-java</artifactId>          <version>5.1.37</version>      </dependency>    <!-- 添加数据源 结束 -->  

shiro.ini

[main]jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm  dataSource=com.mchange.v2.c3p0.ComboPooledDataSource  dataSource.driverClass=com.mysql.jdbc.Driver  dataSource.jdbcUrl=jdbc:mysql://localhost:3306/users dataSource.user=root  dataSource.password=root  jdbcRealm.dataSource=$dataSource  securityManager.realms=$jdbcRealm  

java

package shiro;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.AuthenticationException;import org.apache.shiro.authc.UsernamePasswordToken;import org.apache.shiro.config.Ini;import org.apache.shiro.config.IniSecurityManagerFactory;import org.apache.shiro.mgt.SecurityManager;import org.apache.shiro.subject.Subject;import org.apache.shiro.util.Factory;public class ShiroDemo {    public static void main(String[] args) {        // 初始化SecurityFactory工厂          Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");          // 获取SessionFactory实例          SecurityManager securityManager = factory.getInstance();          // 把SecurityManager实例绑定到SecurityUtils          SecurityUtils.setSecurityManager(securityManager);          // 获得当前执行的用户          Subject currentUser = SecurityUtils.getSubject();          // 创建token令牌,用户名/密码          UsernamePasswordToken token = new UsernamePasswordToken("111",                  "222");          try {              //身份认证              currentUser.login(token);              System.out.println("身份认证成功!");          } catch (AuthenticationException e) {              e.printStackTrace();              System.out.println("身份认证失败!");          }      }}
原创粉丝点击