除了LoginController Grails spring security Request map之外,如何为所有URL指定IS_AUTHENTICATED_FULLY?

时间:2014-05-04 10:27:53

标签: grails spring-security

我们在grails中使用spring安全请求映射表。如何为数据库中除 IS_AUTHENTICATED_FULLY之外的所有网址指定LoginController

1 个答案:

答案 0 :(得分:2)

我会假设您还没有阅读documentation,因为它解释了如何执行此操作。通常,您希望不仅允许访问"登录"控制器也是如此。我会在此处加入,以便您不会遇到其他资源不可用的问题。

文档显示了一段代码,用于在使用" Requestmap"时设置基本安全性。 (例如数据库)。通常,此代码将在Bootstrap.groovy中运行。让我们先解决这个问题。

for (String url in [
      '/', '/index', '/index.gsp', '/**/favicon.ico',
      '/**/js/**', '/**/css/**', '/**/images/**',
      '/login', '/login.*', '/login/*',
      '/logout', '/logout.*', '/logout/*']) {
   new Requestmap(url: url, configAttribute: 'permitAll').save()
}

上述代码将允许完全访问列出的资源。

现在,继续讨论您的具体问题。模式/**将匹配上面尚未定义的所有内容。您还声明要它需要IS_AUTHENTICATED_FULLY所以它看起来像这样:

new Requestmap(url: '/**', configAttribute: 'IS_AUTHENTICATED_FULLY').save()

请记住,这些规则的顺序很重要。 Spring安全性将选择第一个匹配规则并应用它。