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方法