検索
ホームページJava&#&チュートリアルJava hiroセキュリティフレームワークの使い方

    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 までご連絡ください。
    高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

    この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

    適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

    この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

    カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

    この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

    キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

    この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

    Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

    Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

    See all articles

    ホット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ヘンタイを無料で生成します。

    ホットツール

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール

    mPDF

    mPDF

    mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

    VSCode Windows 64 ビットのダウンロード

    VSCode Windows 64 ビットのダウンロード

    Microsoft によって発売された無料で強力な IDE エディター

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、