blog

shiro --- 共通アノテーションを開く

** shiroの共通アノテーション: (注意: shiroのアノテーションはサービスレイヤーに置くことを推奨します。サービスレイヤーがspringのアノテーションを使用する場合、shiroのアノテー...

Jul 27, 2020 · 2 min. read
シェア

** 一般的な四郎の注釈

** @RequiresAuthentication:**

このアノテーションが付けられたクラス、インスタンス、およびメソッドは、アクセスまたは呼び出されたときに、現在のセッションで現在の Subject が認証されている必要があります。

@RequiresGuestです。

このアノテーションが付けられたクラス、インスタンス、およびメソッドは、認証や元のセッションの記録がなくても、現在の Subject を "gust" としてアクセスまたは呼び出すことができます。

許可を必要とします。

このアノテーションでマーク付けされたメソッドを実行するには、現在のサブジェクトに特定のパーミッションが必要です。現在のサブジェクトにそのような権限がない場合、メソッドは実行されません。

RequiresRoles。

このアノテーションで修飾されたメソッドにアクセスするには、現在の Subject が指定されたすべてのロールを持 つ必要があります。現在の Subject も指定されたすべてのロールを持っていない場合、メソッドは実行されず、AuthorisationException がスローされます。

** @RequiresUser:**

このアノテーションでマークされたクラス、インスタンス、およびメソッドにアクセスまたは呼び出 すには、現在の Subject がアプリケーションのユーザである必要があります。

application.xmlまたはshiro.xmlで設定し、純粋なアノテーション・アプローチでは以下のコード1とコード2を無視します。

コード1

      <!-- shiroアノテーションのサポートを有効にする。> 
<bean id="defaultAdvisorAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> 
    <!-- trueに変更する必要がある。つまり、cglibメソッドを使用してActionのプロキシ・オブジェクトを作成する。デフォルト値はfalseで、JDKを使用してプロキシ・オブジェクトを作成すると問題が発生する--。> 
    <property name="proxyTargetClass" value="true"></property> 
</bean> 
<!-- shiroフレームワークが提供するカットオーバークラスを使用して、プロキシオブジェクトを作成する--。> 
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"></bean> 
 ~~~
 
コード2

Read next

イベント処理モデル - バブリング、キャプチャー

黄色い部分をクリックするか、黄色い部分をクリックするだけで、child--yellow, father--blue, --redの順にトリガーされ、バブリングが視覚的ではなく、コードの構造に基づいていることがわかります

Jul 27, 2020 · 4 min read