目次
1.hiro セキュリティ フレームワーク
1.1 権限管理とは
1.2 ID 認証とは
1.3 認可とは
1.4 認証および認可フレームワークとは
2. hiro を使用して認証作業を完了する
2.1 hiro での認証の主要オブジェクト
2.2 認証プロセス
2.3 プロジェクト コード
2.3.1 依存関係
2.3.2 ini ファイルの作成
2.3.3 テスト コード
2.4 認証の原則
3. 認可
3.1 ini ファイルの変更
3.2 コードを変更します
ホームページ Java &#&チュートリアル Java hiroセキュリティフレームワークの使い方

Java hiroセキュリティフレームワークの使い方

May 03, 2023 am 11:22 AM
java shiro

    1.hiro セキュリティ フレームワーク

    Apachehiro は、認証を提供する強力で使いやすい Java セキュリティ フレームワークです。認証、暗号化、セッション管理などの機能を備え、Shiro はあらゆるアプリケーションに対して包括的なセキュリティ管理サービスを提供できます。また、他のセキュリティ フレームワークである Spring Security と比較して、Shiro ははるかにシンプルです。

    Shiro は、Apache のオープンソース フレームワークであり、ソフトウェア システムのセキュリティ認証関連機能を抽出して、ユーザー ID 認証、権限認可、暗号化、セッション管理などの機能を実装し、ユニバーサル セキュリティ認証フレームワークを形成します。 . .

    Shiro は、JavaSE 環境だけでなく JavaEE 環境でも使用できる十分なアプリケーションを簡単に開発できます。 Shiro は、認証、承認、暗号化、セッション管理、Web との統合、キャッシュなどを完了するのに役立ちます。

    1.1 権限管理とは

    基本的に、ユーザー参加型のシステムでは権限管理を行う必要があります 権限管理はシステムセキュリティの範疇に属し、システムへのユーザーアクセスの制御を実現しますセキュリティ ルールまたはセキュリティ ポリシーに従って、ユーザーがアクセスを許可されているリソースにのみアクセスできるように制御されます。

    権限管理には、ユーザー ID の認証と認可 (認証と認可と呼ばれます) の 2 つの部分が含まれます。アクセス制御が必要なリソースの場合、ユーザーは本人認証を受ける必要があり、認証を通過した後のみリソースにアクセスできます。

    1.2 ID 認証とは

    ID 認証は、ユーザーが正規のユーザーであるかどうかを判断するプロセスです。最も一般的に使用される単純な ID 認証方法は、ユーザーが入力したユーザー名とパスワードがシステムに保存されているユーザー名とパスワードと一致するかどうかを確認することによって、システムがユーザーの ID が正しいかどうかを判断する方法です。指紋を使用するシステムやその他のシステムの場合は指紋を表示する必要があり、ハードウェア キーなどのカード スワイプ システムの場合はカードをスワイプする必要があります。

    1.3 認可とは

    認可、つまりアクセス制御は、誰がどのリソースにアクセスできるかを制御します。 ID 認証後、サブジェクトにはシステム リソースにアクセスするためのアクセス許可を割り当てる必要があります。一部のリソースはアクセス許可がないとアクセスできません。

    1.4 認証および認可フレームワークとは

    シロ フレームワークと Spring セキュリティ フレームワークこのフレームワークは現在市場で非常に人気があります。

    2. hiro を使用して認証作業を完了する

    2.1 hiro での認証の主要オブジェクト

    Subject: サブジェクトがシステムにアクセスするユーザー。認証のためのユーザー、プログラムなどはサブジェクトと呼ばれます;

    プリンシパル: ID 情報----アカウント番号は、ID 認証のサブジェクトの ID です。ID はユーザー名など、一意である必要があります。 、携帯電話番号、電子メール アドレスなど、A サブジェクトは複数の ID を持つことができますが、プライマリ ID (プライマリ プリンシパル) は 1 つである必要があります。

    credential: 資格情報---パスワードは、パスワードや証明書など、サブジェクトのみが知っているセキュリティ情報です。

    2.2 認証プロセス

    Java hiroセキュリティフレームワークの使い方

    2.3 プロジェクト コード

    1. まず ID 認証にデータベースは必要ありません --ini ファイル、 window システム ファイル。アカウント番号とパスワードを保存できます。

    (1) Maven Java プロジェクトの作成

    2.3.1 依存関係
     <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-core</artifactId>
                <version>1.9.0</version>
            </dependency>
    ログイン後にコピー
    2.3.2 ini ファイルの作成

    Java hiroセキュリティフレームワークの使い方

    2.3.3 テスト コード
    public class Test01 {
        public static void main(String[] args) {
            //1.获取SecurityManager对象
            DefaultSecurityManager securityManager=new DefaultSecurityManager();
            //2.读取ini文件
            IniRealm iniRealm=new IniRealm("classpath:shiro.ini");
            //3。设置securityManager的realm
            securityManager.setRealm(iniRealm);
            //4.设置securityManager上下文生效
            SecurityUtils.setSecurityManager(securityManager);
            //5.获取subject的主体对象
            Subject subject=SecurityUtils.getSubject();
            try{
                //UsernamePasswordToken作用是封装你输入的账号和密码 是客户自己输入的 用来进行比较与realm
                UsernamePasswordToken token=new UsernamePasswordToken("admin","123456");
                //抛出异常 比对shiro中realm和自己的对比,如果一致则登录成功,不一致则登录失败
                subject.login(token);
                System.out.println("登陆成功");
            }catch(Exception e){
                e.printStackTrace();
                System.out.println("登陆失败");
            }
        }
    }
    ログイン後にコピー

    2.4 認証の原則

    Java hiroセキュリティフレームワークの使い方

    件名: 件名ログイン情報が SecurityManager に送信されます --->Authenticator- - -->レルムから提供されたデータに基づいて、関連する認証を実行します。レルム---データ ソースと対話するクラス。

    3. 認可

    Java hiroセキュリティフレームワークの使い方

    Java hiroセキュリティフレームワークの使い方

    3.1 ini ファイルの変更

    Java hiroセキュリティフレームワークの使い方

    3.2 コードを変更します

    public class Test01 {
        public static void main(String[] args) {
            //1.获取SecurityManager对象
            DefaultSecurityManager securityManager=new DefaultSecurityManager();
            //2.读取ini文件
            IniRealm iniRealm=new IniRealm("classpath:shiro.ini");
            //3。设置securityManager的realm
            securityManager.setRealm(iniRealm);
            //4.设置securityManager上下文生效
            SecurityUtils.setSecurityManager(securityManager);
            //5.获取subject的主体对象
            Subject subject=SecurityUtils.getSubject();
            try{
                //UsernamePasswordToken作用是封装你输入的账号和密码 是客户自己输入的 用来进行比较与realm
                UsernamePasswordToken token=new UsernamePasswordToken("admin","123456");
                //抛出异常 比对shiro中realm和自己的对比,如果一致则登录成功,不一致则登录失败
                subject.login(token);
                System.out.println("登陆成功");
            }catch(Exception e){
                e.printStackTrace();
                System.out.println("登陆失败");
            }
            System.out.println("=========================登陆后===========================");
            boolean authenticated = subject.isAuthenticated();
            if(authenticated){
                //判断当前登录者是否具有user:query权限
                boolean permitted = subject.isPermitted("user:update");
                System.out.println(permitted);
                //从角色角度
                boolean role1 = subject.hasRole("role1");
                System.out.println(role1);
            }else {
                System.out.println("请先认证");
            }
        }
    }
    ログイン後にコピー

    以上がJava hiroセキュリティフレームワークの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

    Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

    Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

    Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

    ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

    Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

    Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

    Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

    Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

    この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

    Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

    Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

    Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

    Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

    未来を創る: まったくの初心者のための Java プログラミング 未来を創る: まったくの初心者のための Java プログラミング Oct 13, 2024 pm 01:32 PM

    Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。

    See all articles