问题标签 [grails-spring-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
546 浏览

grails - Grails 3.2.2 spring-security-ui 覆盖 RegisterController 不起作用

我正在开发一个 Grails 3.2.2 插件,我试图在其中覆盖来自 spring-security-ui 的RegisterController以及register.gsp。我使用了 s2ui-override 命令,它为我创建了所需的控制器,目前我只添加了一个 println 来查看它的工作原理,但它似乎仍在使用原来的控制器。到目前为止,我有:

注册控制器

register.gsp和原来一样,只是增加了

紧跟在body标签之后

网址映射

运行应用程序时的结果: 我可以在顶部看到示例红色文本,但在控制台中看不到输出,尽管在运行应用程序时收到警告。转到“注册”URL 时的控制台输出:

虽然当我去“注册/其他行动”时,我得到:

有趣的是,如果我在本地发布插件(我的 .m2 目录)并将其导入应用程序,我会在控制台中获取我的 printlns,我的 gsp 现在没有被使用(我看不到我的红色 Hello 文本)。控制台输出:

任何人都可以帮助我在哪里出错?我很乐意提供任何其他可能有帮助的资源。

0 投票
1 回答
156 浏览

grails - Grails 升级到 3.2 使用配置类型 requestmap 破坏了 springsecurity

将 Grails 从 3.1.8 升级到 3.2.4 后,应用程序陷入了重定向循环,总是试图重定向到 /login/auth。缺少 requestmap 条目的典型行为。我也尝试过升级hibernate4,如grails 3.2的升级说明中所述

使用 Grails 3.1.8 的工作应用程序的原始依赖项

根据升级说明

但是应用程序仍然被困在这个重定向循环中。我清楚地将请求映射确定为问题的根本原因,因为我停用了此功能并切换到静态规则。有什么建议可以使用哪些依赖项来让 springsecurity 插件与 Grails 3.1.8 一起使用?

使用以下 springsecurity 版本:

0 投票
1 回答
124 浏览

grails - 错误处理 403 时的空身份验证

我现在正在运行 Grails 3.1.15 和org.grails.plugins:spring-security-core:3.1.1.

当我返回状态代码时,403ErrorController应该生成一个适当的错误页面(映射到 中UrlMappings)。它需要springSecurityService.currentUser生成该错误页面。

事实证明,我进入NPE了该过程,因为springSecurityService.currentUser它是 null 以及身份验证对象。

这在 Grails2和v2.spring-security-plugin

我遇到了这个问题:Spring SecurityContext 在错误页面上返回空身份验证,并且建议ExceptionTranslationFilter必须到位。在 Grails2 中它确实存在,但在 Grails3 中它被替换/扩展为UpdateRequestContextHolderExceptionTranslationFilter- 它仍然在过滤器链中。

当错误处理403

评论:

  • 整个情况仅在部署在 Tomcat 中时发生在生产环境中 - 在开发模式下不可重现
0 投票
1 回答
42 浏览

grails - 如何将分层权限类存储在 Person 类中?

我的问题是:(如何?)我可以使用 Spring Security 插件将我的用户的“权限”存储在 Grails 的用户类中吗?

我给出了以下 SQL 结构:

用户表:

排名表:

我可以配置我的域类以使用该结构而不是典型的“用户、权限、用户权限多对多”模式吗?

等级(id)是分层的,这意味着等级为 4 的用户从等级为 3 的用户那里获得了所有“权限”等。

编辑:我只是在用户域中将 getAuthorities 方法替换为以下内容:

0 投票
1 回答
1139 浏览

grails - 域类中的 Grails 3.2.8 依赖注入

默认情况下,Grails 3.2.8 似乎没有为域类工作的依赖注入。

当我创建一个新应用程序并使用以下 println 添加 Spring Security Core 3.1.1 时:

我得到:

如果我尝试类似地创建和注入服务,我会得到相同的空值。有没有好的解决方法?

0 投票
1 回答
219 浏览

grails-spring-security - grails-spring-security-rest OAuth OAuthException:响应正文不正确

尝试使用 facebook 登录时,该插件会引发以下错误。

错误:500,消息:org.scribe.exceptions.OAuthException:响应正文不正确。无法从中提取令牌:'{"access_token":"EAAOWKGC6MDcBAB9ZAka1zEc1","token_type":"bearer"}',error_description:org.scribe.exceptions.OAuthException:响应正文不正确。无法从中提取令牌:'{"access_token":"EAAOWKGC6M","token_type":"bearer"}', error_code:OAuthException

0 投票
1 回答
386 浏览

tomcat - gradle war vs gradle assemble(Grails 3.2.6 和 Sec 插件 3.1.2)

我很难弄清楚这一点。我有一个应用程序在 intellij 中运行良好,并且作为独立战争(使用创建gradlew assemble)。但是,当我尝试在 tomcat 8.5 中部署这场战争(使用gradlew assembleprovided在 build.gradle 文件中设置的 tomcat 启动器创建)时,我遇到了这个异常。但是,如果我使用生成战争,gradlew war那么我看不到这个异常,并且 tomcat 部署得很好。但在那种情况下,我的应用程序会在前端出现与 gsps 和 g: 命名空间相关的各种垃圾错误。

我真的无法理解为什么会这样?这是我的application.groovy文件(安全相关配置)

有人可以帮我理解发生了什么吗?

0 投票
1 回答
1167 浏览

grails - Grails Spring Security Rest 400 BAD REQUEST ERROR

我一直在尝试/api/login在 Windows 中使用 curl 对 grails spring security rest url 进行身份验证。但无法这样做。我总是以400 BAD REQUEST ERROR. 这些是我的配置结束

BuildConfig.groovy

==================================================== ===================

配置文件

输出:

调试日志:

0 投票
1 回答
484 浏览

grails - 具有角色 ROLE_ADMIN 的用户的 Grails Security 3.1.2 登录将 ROLE_NO_ROLES 显示为权限

我正在使用 Sec 插件 3.1.2 测试 Grails 3.2.9。

在引导程序中创建了一个角色为 ROLE_ADMIN 的用户,并为测试控制器“note”添加了对 interceptUrlMap 的权限。使用该用户成功登录后,我在日志中看到我的管理员拥有 ROLE_NO_ROLES 并且被拒绝访问笔记控制器。

用户、角色和用户角色关联在数据库中。

应用程序.groovy

登录后的日志,当我尝试转到 /note/index 时

关于发生了什么的任何想法?

试图在 Sec 插件文档上找到指针,但它只提到 ROLE_NO_ROLES 一次,并且在用户没有角色时分配,不是这种情况。

0 投票
1 回答
312 浏览

grails - 在带有 Spring Security 的 Grails 2.5.5 上登录失败时获取用户名

我需要在登录尝试失败时捕获用户名,以进行分析以检测可能在我的应用程序登录时遇到问题的攻击和用户。

在所有控制器和操作的过滤器上,我使用域类 ActivityLog 创建了一个日志,其中存储了每个请求的所有请求/参数数据。当我尝试获取来自登录控制器的操作的用户名时,用户名不在参数上,也不在 j_username 上。

如何从过滤器获取登录失败时使用的用户名?

参数看起来像:[login_error:1, action:auth, controller:login]

我试图从 GrailsAnonymousAuthenticationToken 获取信息,但用户名是grails.anonymous.user