1. 程式人生 > >Shiro中最簡單的一個身份驗證例子

Shiro中最簡單的一個身份驗證例子

Shiro作為一個Java安全框架,身份驗證是它最基本的功能。

首先給出shiro的Maven配置

<dependencies>  
    <dependency>  
        <groupId>org.apache.shiro</groupId>  
        <artifactId>shiro-core</artifactId>  
        <version>1.2.2</version>  
    </dependency>  
</dependencies> 
一.配置檔案的驗證

1.配置檔案user.ini

[users]
zhang=123
wei=123
這裡必須寫2個,一個使用者名稱,一個密碼
2.測試類
package com.zw.mymaven;

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;

public class Test {
    public static void main(String[] args) {
        // 1、獲取SecurityManager工廠,此處使用Ini配置檔案初始化SecurityManager
        Factory<SecurityManager> factory=new IniSecurityManagerFactory("shiro.ini");
        // 2、得到SecurityManager例項 並繫結給SecurityUtils
        SecurityManager securityManager = factory.getInstance();
        SecurityUtils.setSecurityManager(securityManager);
        // 3、得到Subject及建立使用者名稱/密碼身份驗證Token(即使用者身份/憑證)
        Subject subject = SecurityUtils.getSubject();
        UsernamePasswordToken token = new UsernamePasswordToken("zhang", "123");
        //UsernamePasswordToken token2 = new UsernamePasswordToken("password", "wei");
        try {
            // 4、登入,即身份驗證
            subject.login(token);
            System.out.println("登入成功 ");
            //subject.login(token2);
        } catch (AuthenticationException e) {
            e.printStackTrace();
            System.out.println("登入失敗 ");
            // 5、身份驗證失敗
        }
        // 6、退出
        subject.logout();
    }
}