// 1は、セキュリティマネージャ植物を得、本明細書中で使用されるのINIプロファイルは、セキュリティマネージャ初期化 工場の<org.apache.shiro.mgt.SecurityManager>工場= 新しい新しいIniSecurityManagerFactory(たconfigFileを); // 2、およびバインドのSecurityManager SecurityUtils得るインスタンス ORGを。セキュリティマネージャ= apache.shiro.mgt.SecurityManager factory.getInstance(); SecurityUtils.setSecurityManager(セキュリティマネージャ)は、 SecurityUtils.setSecurityManager(セキュリティマネージャ)出典: * * * 具体的透明使用するため、セキュリティマネージャシングルトンVM(静的)を提供 *を{ @link #getSubject()getSubject()}達成しました。 * <p -で/> * <B> このメソッドは、開発支援のための主要なフレームワークを呼び出します。アプリケーション開発者はめったに、 *必要に応じて、このメソッドを呼び出す必要がありません。</ B> * <P /> 史郎SecurityManagerのチームは、単一のアプリケーションの非静的インスタンスを好む *と<em>のない</ EM> VM静的単一の実施形態。シングルトンのいくつかの並べ替えを必要とスタティック・メモリ・アプリケーションを使用しないでください * あなたが適用範囲のSecurityManagerのインスタンスを維持するためのアプリケーション構成フレームワーク * (例えば、春やEJB3環境)オブジェクト参照が静的である必要はありませんので、。 * <P /> このような環境では、史郎は現在、彼自身のスレッドによってスレッドを実行に応じてトピックのデータを取得 * フレームワークの統合コード、これは史郎さんを使用するための好ましい方法です。 * <P - /> * しかし、そのような春またはを使用しないスタンドアロンのデスクトップアプリケーションまたはアプレットのようないくつかの状況において、 * EJBまたは同様の構成フレームワークは、VM- (前者はまだ最初の選択肢であるが)シングルトンがより有意義であり得ます。 * これらの環境では、この方法のSecurityManagerによって提供されるが自動的に有効 * {@link #getSubject()getSubject()}通話機能、ほとんどの構成。 * <P /> * 例えば、これらの環境では、これは動作します: * <前> * = DefaultSecurityManager SecurityManagerの新しい新{@link org.apache.shiro.mgt。DefaultSecurityManager} DefaultSecurityManager(); *セキュリティマネージャ。setRealms(...); // 1つまたは複数のドメイン * <B> SecurityUtils。setSecurityManager(SecurityManagerの)</ B> </ PRE> * <P /> * 及びアプリケーションコード内の任意の場所、アプリケーションに関連する次のコールリターン: * <PRE> *あるCurrentUser = SecurityUtil getSubject()。 ; </ PRE> * * 単一の実施形態に@paramのSecurityManagerセキュリティマネージャ静的VMインスタンス。 * / 公共 無効setSecurityManager(SecurityManagerのセキュリティマネージャ){ SecurityUtilsを。SecurityManagerを = のSecurityManager; } // 3、件名を取得し、ユーザ名/パスワードの認証トークン(すなわち、ユーザの身元/資格)を作成 件名件名を=SecurityUtils.getSubject(); UsernamePasswordTokenトークン = 新新UsernamePasswordToken(ユーザ名、パスワード); UsernamePasswordToken(ユーザ名、パスワード):ソース: / * * * パッケージを提出した新しいUsernamePasswordToken、ユーザ名とパスワード構築 の使用、検証プロセスで*を< TT> NULL </ TT> {@link #getHost()}とホスト * <TT>覚えてberme </ TT> デフォルトの <TT> falseに </ TT> * <P /> * <P> これは便利ですコンストラクタは、パスワード内の文字を維持することによって、 *配列、すなわち<TT> password.toCharArray();パスワードを文字列として格納されている。なお *安全上の問題は、クラスのJavaDoc </ pと、コード内に存在してもよいです。 >では * 認証されたユーザ名の提出 認証文字列のために提出されたパスワードを * / パブリックUsernamePasswordToken(最終文字列のユーザー名、最終文字列のパスワード){ この(ユーザ名、パスワード=!ヌル password.toCharArray():? ヌル、偽、ヌル); } subject.login(トークン):出典: / * * *テーマの/ ユーザーがログイン試行を行います。 失敗した場合、 スローされた{@link}含むAuthenticationException、サブクラスを表す失敗しました。 *成功した場合、身体提出/ データがされる関連するアカウントの資格情報 * この{@code件名}が関連していると、この方法は静かに戻ります。 * <P /> * 静か復帰した後、この例を考える{@code件名} * 認証され、{@link #getPrincipal()getPrincipal() } 空ではないであろう * {@link #isAuthenticated()にisAuthenticated( )} {なり@code 真へ}。 * * @Paramトークンパッケージ本体と主題に渡される資格証明書のトークンの * 検証サブシステム。 @ * 例外org.apache.shiro.authc.AuthenticationExceptionを * 認証の試みが失敗した場合。 @since 0.9 * * / 無効ログイン(AuthenticationTokenトークン)投げて、AuthenticationException。