apache shiro学习笔记--02(入门案例)

来源:互联网 发布:阮一峰javascript历史 编辑:程序博客网 时间:2024/05/29 23:45

1.说明

用户的信息,权限,角色存放在配置文件(realm为textrelam)。

2.代码:

1.代码目录结构
这里写图片描述
2.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.xie..shiroStudy</groupId>  <artifactId>shiro01</artifactId>  <packaging>war</packaging>  <version>0.0.1-SNAPSHOT</version>  <name>shiro01 Maven Webapp</name>  <url>http://maven.apache.org</url>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</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>  </dependencies>  <build>    <finalName>shiro01</finalName>  </build></project>

3.shiro.ini

[users]xie=123fu=111

4.Shiro01.java

package com.xie.test;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.AuthenticationException;import org.apache.shiro.authc.UsernamePasswordToken;import org.apache.shiro.config.IniSecurityManagerFactory;import org.apache.shiro.mgt.SecurityManager;import org.apache.shiro.subject.Subject;import org.apache.shiro.util.Factory;/** * shiro入门案列 * @author xie * */public class Shiro01 {    public static void main(String[] args) {        // 读取配置文件,初始化SecurityManager工厂        //shiro.ini中存放用户信息,权限,角色        Factory<SecurityManager> factory=new IniSecurityManagerFactory("classpath:shiro.ini");        // 获取securityManager实例        SecurityManager securityManager=factory.getInstance();        // 把securityManager实例绑定到SecurityUtils        SecurityUtils.setSecurityManager(securityManager);        // 得到当前执行的用户        Subject currentUser=SecurityUtils.getSubject();        // 创建token令牌,用户名/密码(对用户名为xie,密码为123的用户认证)        UsernamePasswordToken token=new UsernamePasswordToken("xie", "123");        try{            // 身份认证(用xie,123和配置文件的进行匹配认证)            currentUser.login(token);               System.out.println("身份认证成功!");        }catch(AuthenticationException e){            e.printStackTrace();            System.out.println("身份认证失败!");        }        // 退出        currentUser.logout();    }}