2011-06-23 4 views
5

私はSpring Securityを使用するSpring 3プロジェクトを作成しています。Spring Security 3.0.2のDBからのインターセプトURLのロード

<http auto-config="true" use-expressions="true" > 
    <intercept-url pattern="/login.htm" access="permitAll"/> 
    <intercept-url pattern="/admin/*" access="hasRole('ROLE_ADMIN') and fullyAuthenticated"/> 
    <intercept-url pattern="/hello*" access="hasRole('ROLE_ANONYMOUS')"/> 

私はDB(一部のDAOから)からロードしたいすべてこのURL:

これは私の現在のコンテキスト・セキュリティ・ファイルの一部です。つまり、どのURLのアクセス権も動的にチェックしたいのですが。

どうすれば正しい方法でこれを行うことができますか?

答えて

2

Domain Object Security (ACLs)を使用してこれを行うことができます。

AbstractSecurityInterceptorのサブクラスを実装することもできます。

または、アドホックコードで行うこともできます。つまり、コントローラ内のどこかでアクセスチェックを実装し、要求者に必要な権限がない場合はAuthenticationExceptionを送信します。

これらのすべては、出口でAuthenticationExceptionをキャッチし、適切な処置をとるSpringSecurityフィルタで終わります。例えばログインページにリダイレクトするか、「アクセス拒否」ステータスの応答を返します。

+0

わかりませんが、ACLを使用する必要があると思いますが、 – erko

関連する問題