0
我在Spring應用程序中使用的許多控制器擴展了一個公共抽象類。這些方法因此在抽象類中聲明。 我想在抽象方法中應用'PreAuthorize'條件,但我需要獲取被調用的實際控制器類的名稱以傳遞給EL評估程序。 有沒有辦法做到這一點?Spring Security:在Preauthorize批註中獲取控制器類
我在Spring應用程序中使用的許多控制器擴展了一個公共抽象類。這些方法因此在抽象類中聲明。 我想在抽象方法中應用'PreAuthorize'條件,但我需要獲取被調用的實際控制器類的名稱以傳遞給EL評估程序。 有沒有辦法做到這一點?Spring Security:在Preauthorize批註中獲取控制器類
在抽象類中實現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方法