zoukankan      html  css  js  c++  java
  • Shiro起步

    1、测试环境  IntelliJ Idea

    2、pom配置

    <?xml version="1.0" encoding="UTF-8"?>
    
    <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/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.mracale</groupId>
      <artifactId>shiro</artifactId>
      <version>1.0.0</version>
    
      <name>shiro</name>
      <!-- FIXME change it to the project's website -->
      <url>http://www.example.com</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
        </dependency>
        <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <version>1.1.3</version>
        </dependency>
        <dependency>
          <groupId>org.apache.shiro</groupId>
          <artifactId>shiro-core</artifactId>
          <version>1.2.2</version>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
               <artifactId>slf4j-nop</artifactId>
               <version>1.7.2</version>
        </dependency>
    
      </dependencies>
    
      <build>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
          <plugins>
            <plugin>
              <artifactId>maven-clean-plugin</artifactId>
              <version>3.0.0</version>
            </plugin>
            <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.7.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.20.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-jar-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-install-plugin</artifactId>
              <version>2.5.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-deploy-plugin</artifactId>
              <version>2.8.2</version>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </project>

    3、代码

    package com.mracale;
    
    import static org.junit.Assert.assertTrue;
    
    import org.apache.shiro.SecurityUtils;
    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;
    import org.junit.Test;
    
    /**
     * Unit test for simple App.
     */
    public class AppTest 
    {
        @Test
        public void Test(){
            //1、创建SecurityManager工厂对象:加载配置文件,创建工厂对象
            Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
            //2、通过工厂对象,创建SecurityManager对象
            SecurityManager securityManager = factory.getInstance();
            //3、将securityManager绑定到当前运行环境中,让系统随时随地可以访问securityManager对象
            SecurityUtils.setSecurityManager(securityManager);
            //4、创建当前登录的主体,注意:此时主体没有进过认证
            Subject subject = SecurityUtils.getSubject();
            //5、收集主体登录的身份/凭证,即账号密码
            UsernamePasswordToken token = new UsernamePasswordToken("test1","111");
            //6、主体登录
            try{
                subject.login(token);
            }catch (Exception e){
                //e.printStackTrace();
            }
            //7、判断是否登录成功
            System.out.println("验证登录是否成功"+subject.isAuthenticated());
            //8、退出登录
            subject.logout();
            System.out.println("验证登录是否成功"+subject.isAuthenticated());
    
        }
    }
    

    4、常见错误

  • 相关阅读:
    POJ 3278 Catch That Cow
    Object-C 函数定义 -- 笔记
    Object-C变量作用域 -- 笔记
    Object-C 对象 (创建/销毁 对象)-- 笔记
    Object-C 类定义 -- 笔记
    JavaScript 自动分页插件 datatables
    JavaScript 随机数函数
    Server Job: error: String or binary data would be truncated. The statement has been terminated.
    SQL Server error "Xml data type is not supported in distributed queries" and workaround for it
    angularJS怎么实现与服务端的PHP进行数据交互
  • 原文地址:https://www.cnblogs.com/mracale/p/9921310.html
Copyright © 2011-2022 走看看