0

对于一个项目,我想使用 Grails 3.3.9 和 springsecurity。不幸的是,在启动 localhost:8080/login/auth 的应用程序后,我没有找到。我已经使用了 Grails 和 spring security 的组合十几次,它总是有效的。

我做了以下事情:

  1. 我在 Intellij 中使用 Grails 3.3.9 SDK 和 Java 8 JDK 创建了一个新的 grails 项目
  2. 然后我开始了这个项目,一切都按预期进行。
  3. 之后,我将依赖项 compile 'org.grails.plugins:spring-security-core:3.2.3' 添加到 build.gradle。所有组件下载成功
  4. 之后我使用 grails s2-quickstart com.testapp User Role Requestmap 来创建域类。

域类按预期生成。在 /views 和 /controllers 中没有创建任何内容。据我了解文档,使用了插件的标准控制器和视图。

当我启动应用程序时,我总是被重定向到http://localhost:8080/login/auth并且我在我的浏览器中得到一个“未找到”。

我究竟做错了什么?

感谢您的时间和帮助。

4

1 回答 1

0

rejectIfNoRule 设置(SpringSecurity)默认设置为 true,因此您必须创建一些请求映射(至少为您的 LoginController 一个)才能访问登录。

def loginRequestMap = new Requestmap(configAttribute: 'permitAll', url: '/login/auth', httpMethod: 'GET').save()

或者,您可以在 application.groovy 中将 rejectIfNoRule 和 rejectPublicInvocations 设置为 false(我不推荐这样做):

grails.plugin.springsecurity.rejectIfNoRule = false grails.plugin.springsecurity.fii.rejectPublicInvocations = false

于 2019-03-12T18:16:11.747 回答