Java 在实现接口时未创建带有@Secured注释的类

Java 在实现接口时未创建带有@Secured注释的类,java,spring,spring-security,Java,Spring,Spring Security,我有这个问题,无法理解如何解决,任何帮助都将得到评估。 我需要用一些auth来保护REST方法,我在应用程序中有几个角色。我将@Secured注释放在我的类中的方法中,该方法实现了一些接口,Spring没有创建没有任何日志消息的bean(@Controller)。但是如果类没有实现接口,那么bean就创建得很好 在代码中,它看起来如下所示: 控制器: 公共类控制器实现API{ @安全(“角色\管理员”) @RequestMapping(value=“/one/”,method=RequestMe

我有这个问题,无法理解如何解决,任何帮助都将得到评估。 我需要用一些auth来保护REST方法,我在应用程序中有几个角色。我将
@Secured
注释放在我的类中的方法中,该方法实现了一些接口,Spring没有创建没有任何日志消息的bean(
@Controller
)。但是如果类没有实现接口,那么bean就创建得很好

在代码中,它看起来如下所示:

控制器:

公共类控制器实现API{
@安全(“角色\管理员”)
@RequestMapping(value=“/one/”,method=RequestMethod.GET)
公共字符串测试(){
返回“一”;
}
}
界面:

公共接口API{
字符串测试();
}
在我的例子中,没有创建控制器bean。但是如果我删除
implements API
,所有这些都将正常工作,bean将被创建,安全性也将正常工作

我使用基于XML的配置和位置


在mvc-config.xml上启用注释

我跟踪了它,如果在类中方法处放置的注释没有实现接口,Spring在构建上下文时使用
MethodSecurityMetadataSourceAdvisor.MethodSecurityMetadataSourcePointcut
,但在类实现接口时–Spring使用
TransactionAttributeSourcePointcut

@RolesAllowed
具有相同的效果

检查版本

4.3.7.1版本
4.2.2.1发布

4.3.23.1发布
4.2.13.1发布
最新的弹簧靴也有同样的效果

有人解决了同样的问题吗?非常感谢。

尝试添加以下内容- @EnableGlobalMethodSecurity(securedEnabled=true) 在config类的类级别,我们可以在任何@Configuration实例上使用@EnableGlobalMethodSecurity注释启用基于注释的安全性。例如,下面将启用SpringSecurity的@Secured注释

@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true)
public class MethodSecurityConfig {
   // ...
}
尝试添加以下内容- @EnableGlobalMethodSecurity(securedEnabled=true) 在config类的类级别,我们可以在任何@Configuration实例上使用@EnableGlobalMethodSecurity注释启用基于注释的安全性。例如,下面将启用SpringSecurity的@Secured注释

@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true)
public class MethodSecurityConfig {
   // ...
}

谢谢,但我正在使用XML配置并在
中打开注释。如果remove接口都能正常工作,那么我想这是某种deep Spring机制中的问题。谢谢,但我正在使用XML配置并在
中打开注释。如果移除接口都可以正常工作,那么我猜问题出在一些深弹簧机构上。