天天看點

shiro-身份認證身份認證ini檔案

身份認證

在應用中使用者怎麼證明自己的身份,一般需要提供一些憑據,最常見的如使用者名、密碼等。在shiro中需要使用者提供Principals(身份)和credentials(證明)

Principals:身份,辨別主體。如手機号、郵箱、使用者名等。

Credentials:證明,和安全主體對應的值,密碼證書等。

ini檔案

在第二章,原書使用了ini配置檔案,來配置Realm。 ini是初始化initialization File的簡寫,是windows下的初始檔案的存儲形式,常用于一些預設配置。

由 節、鍵、值組成,使用;表示注釋

使用 [section]表示節 鍵=值的形式

比如shiro的一個ini配置:指定了一組使用者名和密碼的關系

;這是一個簡單的使用者配置

[users]

zhangsan=zhangsan123

wang=123

一個簡單的認證過程:

public class MyDemo {

public static void main(String[] args) {

{

//工廠模式 擷取SecurityManagerFactory

IniSecurityManagerFactory iniSecurityManagerFactory = new IniSecurityManagerFactory(“classpath:shiro-realm.ini”);

//擷取一個執行個體

SecurityManager instance = iniSecurityManagerFactory.getInstance();

//設定SecurityUtil

SecurityUtils.setSecurityManager(instance);

//擷取Subject和token

Subject subject = SecurityUtils.getSubject();

UsernamePasswordToken token=new UsernamePasswordToken(“zhangsan”,“zhangsan”);

try {
            //登入
            subject.login(token);
        }catch (AuthenticationException e){
            e.printStackTrace();
        }
        boolean authenticated = subject.isAuthenticated();
        System.out.println(authenticated);
        //登出
        subject.logout();
    }
}
           

}