菜鳥-手を取ってAcegiを実際のプロジェクトに応用することを教えます(1.2)
7)daoAuthenticationProviderは、簡単なデータベースベースの認証を行います.DaoAuthenticationProviderは、データベース内のアカウントパスワードを取得して照合します.成功すると、認証情報を含むAuthenticationオブジェクトがユーザーIDとともに返されます.そうしないと、認証に失敗し、AuthenticationExceptionが投げ出されます.
class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
javaee=password,ROLE_SUPERVISOR
qiuzj=password,ROLE_SUPERVISOR,disabled
inMemDaoImplは、メモリに基づいてユーザを格納する情報を提供し、inMemDaoImplはuserMapプロパティを使用して複数のユーザを定義する.ここでqiuzj状態はdisabled、すなわち失効状態である
javaee=password,ROLE_SUPERVISOR形式:ユーザー名=パスワード、カンマで区切られた複数のロール
qiuzj =password,ROLE_SUPERVISOR,disabled形式:ユーザー名=パスワード、カンマで区切られた複数のロール、ユーザーステータス
8)filterInvocationInterceptorはurlに転向する前にobjectDefinitionSourceで設定したユーザ権限情報をチェックする.まず、objectDefinitionSourceではURLへのアクセスに必要な属性情報が定義されています(ここでの属性情報は、accessDecisionManagerがどのvoterで投票するかを示すフラグにすぎません).その後、authenticationManagerは、自分のproviderを使用してユーザーの認証情報を検証します.最後に,ユーザがurlに認証とアクセスするために必要な属性を持つことに基づいて,自分のvoterを呼び出して投票し,アクセスを許可するかどうかを決定する投票者がいる.
class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/secure.jsp=ROLE_SUPERVISOR
]]>
objectDefinitionSourceは、Webリソースとロールの対応関係、すなわちURLの権限構成情報を定義します.異なるURLリソースに対応する権限を指定します.例:
/**/*.jpg=AUTH_ANONYMOUS,AUTH_USER
/**/*.gif=AUTH_ANONYMOUS,AUTH_USER
/**/*.png=AUTH_ANONYMOUS,AUTH_USER
/login.jsp*=AUTH_ANONYMOUS,AUTH_USER
/**=AUTH_USER
以上の構成指定AUTH_ANONYMOUS権限のユーザー(匿名ユーザー)は、画像リソースとログインページのみにアクセスできます.AUTH_USER権限のユーザーは、WEBリソースすべてにアクセスできます.
9)httpRequestAccessDecisionManager(投票通過ポリシーマネージャ)は、投票通過ポリシーを管理するために使用されます.Acegiは、3つの投票通過戦略の実現を提供します.
AffirmativeBased(少なくとも1人の投票者同意者が通過可能)、ConsensusBased(多数の投票者同意者が通過可能)、UnanimousBased(すべての投票者同意者が通過可能).このプログラムはAffirmativeBasedポリシーを採用し、「誰も反対しないで通過する」投票ポリシーを禁止します.
class="org.acegisecurity.vote.AffirmativeBased">
投票はrolePrefixで設定されたvalueで始まる権限でなければなりません.AUTH_などです.ROLE_
デフォルトでは、rolePrefix="ROLE_"
開発環境:
MyEclipse 5.0GA
Eclipse3.2.1
JDK1.5.0_10
tomcat5.5.23
acegi-security-1.0.7
Spring2.0
Jarパッケージ:
acegi-security-1.0.7.jar
Spring.jar
commons-codec.jar
さあ、第1編はこれで終わります.夜はもうすぐ2時です.もう寝る時間です.おやすみなさい.友达!
javaee=password,ROLE_SUPERVISOR
qiuzj=password,ROLE_SUPERVISOR,disabled
inMemDaoImplは、メモリに基づいてユーザを格納する情報を提供し、inMemDaoImplはuserMapプロパティを使用して複数のユーザを定義する.ここでqiuzj状態はdisabled、すなわち失効状態である
javaee=password,ROLE_SUPERVISOR形式:ユーザー名=パスワード、カンマで区切られた複数のロール
qiuzj =password,ROLE_SUPERVISOR,disabled形式:ユーザー名=パスワード、カンマで区切られた複数のロール、ユーザーステータス
8)filterInvocationInterceptorはurlに転向する前にobjectDefinitionSourceで設定したユーザ権限情報をチェックする.まず、objectDefinitionSourceではURLへのアクセスに必要な属性情報が定義されています(ここでの属性情報は、accessDecisionManagerがどのvoterで投票するかを示すフラグにすぎません).その後、authenticationManagerは、自分のproviderを使用してユーザーの認証情報を検証します.最後に,ユーザがurlに認証とアクセスするために必要な属性を持つことに基づいて,自分のvoterを呼び出して投票し,アクセスを許可するかどうかを決定する投票者がいる.
PATTERN_TYPE_APACHE_ANT
/secure.jsp=ROLE_SUPERVISOR
]]>
objectDefinitionSourceは、Webリソースとロールの対応関係、すなわちURLの権限構成情報を定義します.異なるURLリソースに対応する権限を指定します.例:
/**/*.jpg=AUTH_ANONYMOUS,AUTH_USER
/**/*.gif=AUTH_ANONYMOUS,AUTH_USER
/**/*.png=AUTH_ANONYMOUS,AUTH_USER
/login.jsp*=AUTH_ANONYMOUS,AUTH_USER
/**=AUTH_USER
以上の構成指定AUTH_ANONYMOUS権限のユーザー(匿名ユーザー)は、画像リソースとログインページのみにアクセスできます.AUTH_USER権限のユーザーは、WEBリソースすべてにアクセスできます.
9)httpRequestAccessDecisionManager(投票通過ポリシーマネージャ)は、投票通過ポリシーを管理するために使用されます.Acegiは、3つの投票通過戦略の実現を提供します.
AffirmativeBased(少なくとも1人の投票者同意者が通過可能)、ConsensusBased(多数の投票者同意者が通過可能)、UnanimousBased(すべての投票者同意者が通過可能).このプログラムはAffirmativeBasedポリシーを採用し、「誰も反対しないで通過する」投票ポリシーを禁止します.
投票はrolePrefixで設定されたvalueで始まる権限でなければなりません.AUTH_などです.ROLE_
<bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter"> <property name="rolePrefix" value="AUTH_"/> </bean>
デフォルトでは、rolePrefix="ROLE_"
開発環境:
MyEclipse 5.0GA
Eclipse3.2.1
JDK1.5.0_10
tomcat5.5.23
acegi-security-1.0.7
Spring2.0
Jarパッケージ:
acegi-security-1.0.7.jar
Spring.jar
commons-codec.jar
さあ、第1編はこれで終わります.夜はもうすぐ2時です.もう寝る時間です.おやすみなさい.友达!