org.seasar.kvasir.cmsプラグインのorg.seasar.kvasir.cms.pageFilters拡張ポイントとorg.seasar.kvasir.cms.pageExceptionHandlers拡張ポイントにそれぞれbasicAuthenticationPageFilterとbasicAuthenticationPageExceptionFilterを追加することで、BASIC認証を行なわせることができます。
例えば「com.example.plugin.gard」というGardにアクセスがあった際にBASIC認証を行なわせたい場合は、以下のような設定をplugin.xmlに追加して下さい。
<requires> <import plugin="org.seasar.kvasir.cms" /> ... </requires> ... <extension point="org.seasar.kvasir.cms.pageFilters"> <page-filter id="basicAuthenticationPageFilter" gard-id="com.example.plugin.gard" phase="authentication" after="org.seasar.kvasir.cms.actorBindingPageFilter" /> </extension> <extension point="org.seasar.kvasir.cms.pageExceptionHandlers"> <page-exception-handler id="basicAuthenticationPageExceptionHandler" gard-id="com.example.plugin.gard" type="org.seasar.kvasir.page.SecurityRuntimeException"> <init-param> <param-name>errorPage</param-name> <param-value>@/error/error403.html</param-value> </init-param> </page-exception-handler> </extension>
独自の認証エラーページを指定する場合は、上記のようにbasicAuthenticationPageExceptionHandlerに<init-param>指定を書いて下さい。また、エラーページのリソースをプロジェクトに追加して下さい。エラーページのパスは任意です。この例の場合は「@/error/error403.html」としていますので、プロジェクト内のリソースパスはsrc/main/plugin/gards/gard/static/error/error403.htmlです。独自のエラーページを指定しない場合は<init-param>指定は不要です。
上記設定を行なうことで、権限を持たない状態でcom.example.plugin.gard配下のパスにアクセスするとBASIC認証のダイアログが表示されるようになります。