【问题标题】:Spring Security @Secured annotation and Scala controllerSpring Security @Secured 注解和 Scala 控制器
【发布时间】:2013-02-20 14:27:14
【问题描述】:

在混合 Java/Scala Spring (v3.2) 项目中,我想创建一个基于 scala 的控制器,并使用 @Secure 注释对其进行保护。对于 java 控制器,这工作得很好,但是当我将 @Secure 注释添加到 scala 控制器时,它会在应用程序启动时从 URL 映射中消失。

示例代码:

@Controller
@Secured(Array("ROLE_USER"))
class TestController {
  @RequestMapping(value = Array("/show"), method = Array(RequestMethod.GET))
  def show = {
    "helloTemplate"
  }
}

如果我为每个方法添加安全注解也是如此——整个控制器类将从 URL 映射中消失(即使存在不安全的方法)。日志中没有异常或警告。如果我通过 xml 配置中的 spring-security intercept-url 保护此 URL - 一切正常(控制器上没有 @Secure 注释)。通过 xml 文件和注解驱动配置的 Spring 和 spring-security 配置已打开。感谢您的帮助。

【问题讨论】:

    标签: java spring scala spring-security annotations


    【解决方案1】:

    在 Spring 4/Spring 中,您必须启用 proxyTargetClass = true 才能使用 CGLIB 类代理。这在使用 scala 时优于 java 类代理。

    SpringBoot

    @EnableGlobalMethodSecurity(securedEnabled = true, proxyTargetClass = true)
    

    【讨论】:

      猜你喜欢
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2015-01-28
      • 2016-08-11
      • 2014-10-15
      • 2021-07-08
      • 2016-10-18
      相关资源
      最近更新 更多