2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

Shiro入門教程:如何實現身份認證?

更新時間:2020-08-04 來源:黑馬程序員 瀏覽量:

1、身份認證

【1】基本流程

1596520320960_Shiro入門:身份認證封面.jpg

流程如下:

1、Shiro把用戶的數據封裝成標識token,token一般封裝著用戶名,密碼等信息;

2、使用Subject門面獲取到封裝著用戶的數據的標識token;

3、Subject把標識token交給SecurityManager,在SecurityManager安全中心中,SecurityManager把標識token委托給認證器;Authenticator進行身份驗證。認證器的作用一般是用來指定如何驗證,它規定本次認證用到哪些Realm;

4、認證器Authenticator將傳入的標識token,與數據源Realm對比,驗證token是否合法。

2、案例演示

【2.1】需求

使用shiro完成一個用戶的登錄

【2.2】實現

【2.2.1】新建項目
shiro-day01-01authenticator

1596520194957_Shiro入門:身份認證02.jpg

【2.2.2】導入依賴

<?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.itheima.shiro</groupId>

  <artifactId>shiro-day01-01authenticator</artifactId>

  <version>1.0-SNAPSHOT</version>


  <name>shiro-day01-01authenticator</name>

  <!-- FIXME change it to the project's website -->

  <url>http://www.example.com</url>


  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  </properties>


  <dependencies>


    <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.3.2</version>

    </dependency>


    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.11</version>

    </dependency>


  </dependencies>


  <build>

    <plugins>

      <!-- compiler插件, 設定JDK版本 -->

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>3.1</version>

        <configuration>

          <source>8</source>

          <target>8</target>

          <showWarnings>true</showWarnings>

        </configuration>

      </plugin>

    </plugins>

  </build>
      </project>


【2.2.3】編寫shiro.ini

#聲明用戶賬號

[users]

jay=123

【2.2.4】編寫HelloShiro

package com.itheima.shiro;


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;


/**

 * @Description:shiro的第一個例子

 */

public class HelloShiro {


    @Test

    public void shiroLogin() {

        //導入權限ini文件構建權限工廠

        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");

        //工廠構建安全管理器

        SecurityManager securityManager = factory.getInstance();

        //使用SecurityUtils工具生效安全管理器

        SecurityUtils.setSecurityManager(securityManager);

        //使用SecurityUtils工具獲得主體

        Subject subject = SecurityUtils.getSubject();

        //構建賬號token

        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("jay", "123");

        //登錄操作

        subject.login(usernamePasswordToken);

        System.out.println("是否登錄成功:" + subject.isAuthenticated());

    }

}

【2.2.4】測試

1596520223591_Shiro入門:身份認證03.jpg


【2.3】小結

(1)權限定義:ini文件

(2)加載過程:

導入權限ini文件構建權限工廠;

工廠構建安全管理器;

使用SecurityUtils工具生效安全管理器;

使用SecurityUtils工具獲得主體;

使構建賬號token用SecurityUtils工具獲得主體;

構建賬號token;

登錄操作。

猜你喜歡:

shiro是啥?Shiro的核心組件介紹

系統權限授權和授權邏輯流程

用戶身份認證流程



分享到:
在線咨詢 我要報名
和我們在線交談!