春セキュリティでFilterInvocationSecurityMetadataSourceParserクラスSecurityMetadataSourceを拡張FilterInvocationSecurityMetadataSourceを実装DefaultFilterInvocationSecurityMetadataSourceを延びる、インターセプト-URLタグを解析し、ExpressionBasedFilterInvocationSecurityMetadataSourceのインスタンスを作成する(Ctrlキー/ CMDが+ソースコードをSTSに+ Tシフトしてみてください)。
私が行ったのは、FilterInvocationSecurityMetadataSourceを実装するカスタムクラスを作成することです。OptionsFromDataBaseFilterInvocationSecurityMetadataSource私はDefaultFilterInvocationSecurityMetadataSourceをベースとしてurlMatcherを使用して、support()メソッドなどを実装しました。
その後の作業を行う必要があり、これらのメソッドを実装するには:取得するためにデータベースにアクセスすることができ
起動時に呼び出され、現在はよく設定されていない(つまり、使用しているデータソースまたは永続コンテキストがautowiredであるため)、後で注意してください。 Web環境のソリューションは、web.xml内のcontextConfigLocationを設定して、applicationContext.xmlをapplicationContext-security.xmlの前にロードすることです。
最後に、このBeanをロードするようにapplicationContext-security.xmlをカスタマイズします。
はそれを行うために、私は代わりにセキュリティ名前空間のこのファイルには、通常の豆を使用:
<beans:bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy">
<filter-chain-map path-type="ant">
<filter-chain pattern="/images/*" filters="none" />
<filter-chain pattern="/resources/**" filters="none" />
<filter-chain pattern="/**" filters="
securityContextPersistenceFilter,
logoutFilter,
basicAuthenticationFilter,
exceptionTranslationFilter,
filterSecurityInterceptor"
/>
</filter-chain-map>
</beans:bean>
あなたは、関連するすべての豆を定義する必要があります。例えば:
<beans:bean id="filterSecurityInterceptor" class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor">
<beans:property name="authenticationManager" ref="authenticationManager"></beans:property>
<beans:property name="accessDecisionManager" ref="affirmativeBased"></beans:property>
<beans:property name="securityMetadataSource" ref="optionsFromDataBaseFilterInvocationSecurityMetadataSource"></beans:property>
<beans:property name="validateConfigAttributes" value="true"/></beans:bean>
私はそれがうまく説明答えではないですけど、それは思ったほど難しいことではありません。
スプリングソースをベースとして使用するだけで、必要なものを手に入れることができます。
データベース内のデータを使用してデバッグすると、多くの作業に役立ちます。
それが役に立つかもしれません:します。https:
customAuthenticationProviderは、作成方法CustomAuthenticationProviderクラス内のBean
ある//github.com/srinivas1918/spring-security-dynamic -authorization-and-authentication –