2

混合 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 マッピングから消えます (セキュアでないメソッドがあっても)。ログに例外や警告はありません。この URL を xml 構成の spring-security interrupt-url で保護すると、すべてが正常に機能します (コントローラーに @Secure アノテーションがなくても)。xml ファイルによる Spring および spring-security 構成と、アノテーション駆動型構成がオンになっています。助けてくれてありがとう。

4

1 に答える 1

0

Spring 4/SpringproxyTargetClass = trueでは、CGLIB クラスのプロキシを使用できるようにする必要があります。これは、scala を使用する場合、Java クラスの Proxying よりも優れています。

スプリングブート

@EnableGlobalMethodSecurity(securedEnabled = true, proxyTargetClass = true)
于 2016-08-05T03:48:47.140 に答える