史郎の研究ノート:基本概念

史郎:Apacheの四郎は、認証、承認、暗号化、およびセッション管理を行い、強力で使いやすいJavaのセキュリティフレームワークです。

要するに、史郎は、認証、承認、暗号化と答え管理を行うJavaセキュリティフレームワークを使用するために強力かつ簡単です。

コンセプト 

あなたが誰であるか?その不定詞がauthenicateである認証証明書は、確認証識別として翻訳することができます

あなたは何ができるのである認可認可?誰の詞認可され、承認として翻訳することができ、承認

実行プロセス

フロー・チャートで初見 

ユーザー書かれたコードアプリケーション

件名体が現在の「ユーザー」を表し、ユーザーは必ずしも特定の人ではない、との事を対話任意の現在のアプリケーションが対象です

SecurityManagerセキュリティマネージャは、すべての安全関連の操作は、セキュリティマネージャと相互作用し、そしてそれは、件名のすべてを管理します

レルムは、データソース、つまりセキュリティデータソースとして見ることができます。レルムrealmドメイン史郎はSecurityManagerがユーザーを認証する場合、正当なユーザの識別を決定するために比較されるレルムからユーザーを取得する必要があり、安全性のデータから得られました

 

史郎は、アクセス制御の4つの主要な方法でした。

  プログラム内のアクセス制御によって、プログラム1.件名

  2. [設定フィルターは、URLレベルの粗粒度のアクセス制御を実現するために

  3.設定プロキシコントロールのアノテーションベースのきめ細かい権限

  4.史郎表示アクセス制御は、ページ内のカスタムラベルのページを実装しました

カスタムレルム

我々はAuthorizingRealm、二つの方法親クラスの書き換えを継承する必要があります。

輸入org.apache.shiro.authc.AuthenticationException。
輸入org.apache.shiro.authc.AuthenticationInfo;
輸入org.apache.shiro.authc.AuthenticationToken。
輸入org.apache.shiro.authz.AuthorizationInfo;
輸入org.apache.shiro.subject.PrincipalCollection。

パブリック クラス CustomizeAuthorizingRealmは延びorg.apache.shiro.realm.AuthorizingRealm {
     
    @Overrideが
    保護 AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken)がスロー含むAuthenticationException {
         // TODOの
        戻り ヌル
    }
    @Override 
    保護AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection){ 
        // TODOの
        戻りヌル
    }
}

 

doGetAuthenticationInfo 

認証に関連する情報を取得する第一取得着信ユーザ名に係るユーザ情報を、

ユーザーが空の場合、そのアカウントが異常UnknownAccountExceptionを見つけられませんでした投げます。

ユーザー場合は例外をスローLockedAccountExceptionロックロックされました。

最後の世代AuthenticationInfo情報、間接的な親AuthenticatingRealm使用CredentialsMatcher裁判官のパスワードが一致すると、エラー例外がスローされますIncorrectCredentialsExceptionパスワードと一致しない場合。

パスワードは、ここにも再試行した場合も、リトライ異常ExcessiveAttemptsExceptionの数を超えるスローされます。

SimpleAuthenticationInfo情報を組み立てる際、合格する必要がありますアイデンティティ情報(ユーザー名)、資格証明書(暗号化されたパスワード)、塩(ユーザ名+塩)、CredentialsMatcher塩を暗号化するために使用され、パスワードをクリアテキストの暗号文ここでパスワードが一致渡されました

このメソッドは値を返しますAuthenticationInfo

doGetAuthorizationInfo 

レルムの前に今渡された場合PrincipalCollectionは直接getPrimaryPrincipalは、ユーザー名を取得することができます呼び出すこと、アイデンティティのコレクションです。

そして、UserServiceのインタフェースを呼び出すユーザの役割と名前に基づいて正しい情報を取得します

 

参考記事https://www.cnblogs.com/maofa/p/6407102.html

終わり

おすすめ

転載: www.cnblogs.com/colin220/p/9637941.html