Spring Security Docs ( http://static.springsource.org/spring-security/site/docs/3.1.x/reference/taglibs.html#d0e6875 ) には、次のように記載されています。
security taglibs を使用して、次のように URL によるアクセスを承認できます。
<sec:authorize url="/admin">
このコンテンツは、「/admin」URL へのリクエストの送信を許可されたユーザーにのみ表示されます。</sec:authorize>
このタグを使用するには、アプリケーション コンテキストに WebInvocationPrivilegeEvaluator のインスタンスも必要です。名前空間を使用している場合は、自動的に登録されます。
今いいよ...
Spring Security 3.0 から 3.1 にアップグレードしました
SS 3.0 では、URL ベースのアクセスを使用する JSP タグは完全に機能しました。3.1 jar にドロップすると、動作しなくなりました。
Spring Security 名前空間を使用しています。したがって、 JSP タグを機能させるために必要なものはすべて揃っているはずですが、そうではありません。構成に関する他のすべては、私のアプリケーションで機能しています。唯一機能しないのは、JSP タグを使用した URL ベースのアクセスです。
私の設定は次のようになります (SS 3.1 用に更新)。私は何が欠けていますか?
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<security:global-method-security secured-annotations="enabled"/>
<security:http pattern="/feed/**" create-session="stateless" entry-point-ref="digestEntryPoint" authentication-manager-ref="webAuthenticationManager" use-expressions="true">
<security:http-basic/>
<custom-filter ref="digestFilter" after="BASIC_AUTH_FILTER" />
</security:http>
<security:http name="webHttp" auto-config="true" use-expressions="true" authentication-manager-ref="webAuthenticationManager">
<!-- Restrict URLs based on role -->
<security:intercept-url pattern="/auth/login" access="permitAll" />
<security:intercept-url pattern="/auth/autologin" access="permitAll" />
<security:intercept-url pattern="/auth/logout" access="isAuthenticated()" />
<security:intercept-url pattern="/auth/loginSuccess" access="" /> <!-- empty access tag. The method checks for authenticated user -->
<security:intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')" />
<!-- Override default login and logout pages -->
<security:form-login login-page="/auth/login"
login-processing-url="/auth/loginProcess"
default-target-url="/auth/loginSuccess"
authentication-failure-url="/auth/login?error=1" />
<security:logout logout-url="/auth/logout" logout-success-url="/" />
<security:remember-me key="remembermekey" user-service-ref="userDetailsService"/>
<security:session-management invalid-session-url="/auth/login"/>
</security:http>
<beans:bean id="digestFilter" class="org.springframework.security.web.authentication.www.DigestAuthenticationFilter">
<beans:property name="userDetailsService" ref="userDetailsService" />
<beans:property name="authenticationEntryPoint" ref="digestEntryPoint" />
</beans:bean>
<beans:bean id="digestEntryPoint" class="org.springframework.security.web.authentication.www.DigestAuthenticationEntryPoint">
<beans:property name="realmName" value="Contacts Realm via Digest Authentication" />
<beans:property name="key" value="acegi" />
</beans:bean>
<security:authentication-manager id="webAuthenticationManager" alias="webAuthenticationManager">
<security:authentication-provider user-service-ref="userDetailsService">
<security:password-encoder hash="md5"/>
</security:authentication-provider>
</security:authentication-manager>
</beans:beans>