我们在grails中使用spring安全请求映射表。如何为数据库中除 IS_AUTHENTICATED_FULLY
之外的所有网址指定LoginController
?
答案 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安全性将选择第一个匹配规则并应用它。