2016-11-20 2 views
0

私がSpringアプリケーションで使用するコントローラの多くは、共通抽象クラスを拡張しています。したがって、メソッドは抽象クラスで宣言されます。 抽象メソッドで 'PreAuthorize'条件を適用したいのですが、呼び出される実際のコントローラクラスの名前をELエバリュエータに渡す必要があります。 これを行う方法はありますか?Springセキュリティ:Preauthorizeアノテーションでコントローラクラスを取得

答えて

0

抽象クラスでは、BeanNameAwareインターフェイスを実装します。

public abstract class MyController implements BeanNameAware{ 

String beanName; 

    @Override 
public void setBeanName(final String beanName) { 
    this.beanName = beanName; 
} 

@Override 
public String getBeanName() { 
    return beanName; 
} 
} 

通常のプロキシではなく、実際のBean名が保持されます。さらなるカスタマイズが必要な場合は、BeanFactoryAwareを実装してください。事前認証のSpElでそのgetBeanNameメソッドを使用することができます

関連する問題