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