问题标签 [grails3]

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 回答
441 浏览

grails - Grails 3无法解析本地插件

我正在开发一个插件并在发布之前在本地工作。我想在工作完成之前避免出版。

我已经阅读了最新的Grails Plugins条目,但它并没有解决我的问题,这里的几个类似问题也没有。

我的目录结构是这样的(与基于此 SO 链接的文档略有不同):

在 myApp build.gradle 中:

在 myApp settings.gradle 中(来自上面的链接):

这是构建失败时出现的错误:

我的路径不正确吗?我需要创建罐子吗?如果是这样,我该怎么做?我试过grails package-plugin无济于事。

谢谢!

0 投票
0 回答
60 浏览

serialization - grails 版本从 3.1.11 更新到 3.1.16

我有一个 grails 3.1.16 应用程序。我正在使用 grails 3.1.11 的一些插件。当我使用grails run-app命令运行我的应用程序时,它工作正常。但是当我制作 war 文件并将其部署到 tomcat 时,它选择了某些文件的错误版本。

最初我的应用程序在 grails 3.1.11 中。但我需要在 3.1.16 中完成一些改进(BeforeValidateHelper 实现可序列化)。所以我已将我的 grails-app 版本更新为 3.1.16。.但是我的插件是3.1.11版本的。当我运行grails run-app时,它工作正常(BeforeValidateHelper 实现了可序列化)。但是当我将它作为war文件部署到tomcat时,它显示的BeforeValidateHelper是不可序列化的。

当我打开http://localhost:8080它显示 grails 3.1.16 版本(这是正确的)。但是它的grails 3.1.11(BeforeValidateHelper)的选择文件

0 投票
0 回答
98 浏览

grails - Grails 3骆驼路由

我想知道有没有办法自动将 RouteBuilder 类添加到 grails 3 中的骆驼上下文中?我正在使用https://grails.org/plugin/routing但它不再适用于 grails 3。

0 投票
1 回答
672 浏览

oracle - Grails 3 无法解析类 oracle.sql

尝试运行具有jdbc6依赖性的 grails 3 应用程序。我正在尝试在我的 groovy 服务中导入以下库,该服务应该连接到 Oracle 数据库以调用存储过程。

启动时出现以下三个错误。但是我的Gradle: com.oracle:ojdbc6:11.2.0.3图书馆下有这些课程。所以我不确定为什么它不能识别它们。

有什么建议为什么找不到这些课程?

0 投票
1 回答
114 浏览

grails - grails 3 spring security 用户域 id 字段合成

我正在使用带有 spring-security-core 插件 3.1.2 的 grails 3.2.9。

我已经运行了 s2-quickstart 脚本来创建用户、角色和用户角色域类。我发现 User 和 Role 域中的 id 字段被认为是合成的。例如,如果我运行以下代码,则不会显示 id 字段:

这是我的用户类:

我的其他域类没有发生这种情况,我看到的第一个问题是 exa-datatables 插件(2.0.1)。该插件使用类似的代码来查找域的字段,因此当请求插件显示 id 字段时,它会失败并出现未知列错误。

0 投票
2 回答
174 浏览

sql-server - Grails 3.2.9 SQL 驱动程序错误

从 Grails 3.2.5 升级到 3.2.9 后,我开始收到 SQL Server 驱动程序异常(使用 sqljdbc42.jar):

降级到 Grails 3.2.7 后,这又停止了。我在不同的数据库中调用存储过程,但代码在 3.2.7 和之前而不是在 3.2.9 中有效。我尝试将 SQL Server JDBC 版本升级到以下值,但无济于事。

compile group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '6.1.7.jre8-preview'

0 投票
1 回答
642 浏览

spring-security - springSecurityService.principal 在 tomcat 8.5 中部署为 WAR 时返回 Null

前言

我正在为 Grails 微服务联合设计一个 API 网关。此问题似乎与已在此存储库中提交的一堆问题有关,但没有提供解决方案。

版本和配置

圣杯:3.2.2

雄猫:8.5

插件版本:

我正在使用 spring security rest 插件仅用于令牌身份验证。我自己通过返回ROLE_NO_ROLES所有用户来完成授权部分getAuthorities()。我拦截所有请求并根据我自己存储在数据库中的授权模式授权访问。

问题:

使用这些配置和策略,当我在本地系统上运行我的代码时,它可以按需要运行。当我将它作为 tomcat 中的 war 文件部署在服务器上时,它适用于对网关的所有请求,即所有模式的请求/umm/controller/action。Spring 安全上下文就在那里,并且完美地评估了用户。

当我尝试使用表单的请求通过重定向调用其他微服务/umm/microservice/controller/actionspringSecurityService.getCurrentUser()springSecurityService?.principal?.username开始返回 null。尽管我的令牌得到了完美的评估,但我没有得到任何安全上下文。

有关详细信息,请查看此问题。上述问题中还提供了重现该错误的详细信息。整个项目可在此处获得。

更新:2017 年 5 月 19 日

我尝试在本地机器上的 Tomcat 中部署我的战争。这个问题和这个问题提供了以下解决方案。

  • 禁用tomcat缓存
  • 环境 grails.plugin.springsecurity.sch.strategyName = org.springframework.security.core.context.SecurityContextHolder.MODE_INHERITABLETHREADLOCAL

到目前为止似乎没有任何效果。反正SecurityContextHolder要回来了。null即所有用户检索功能SpringSecurityServicegetCurrentUser(), getPrincipal(),getAuthentication()loadCurrentUser()返回 null。

更新:2017 年 5 月 23 日

为了缩小问题范围,我使用

现在对于任何非 umm 请求,我都会得到一个404, page not found. 我认为问题出在生产环境上。该应用程序在开发中运行良好。

也试过grails run-app了,效果很好。为了排除生产环境的问题,我使用创建了战争grails dev war但无济于事。到目前为止,对war.

更新:2017 年 5 月 25 日

我可能应该问这个http://security.stackexchange.com但为了记录,我也在这里问。

我在下面提供的答案包含一个解决方法修复。答案中解释了修复工作的机制。我的问题是:

  1. 这种方法是否会在安全系统中引入任何漏洞或漏洞?
  2. 这个授权模式是安全的还是需要修改?
  3. 我正在通过插件进行身份验证,但正在授权自己。有人可以绕过安全过滤器并直接命中授权拦截器吗?因为如果有人能做到这一点,他只需给我一个与令牌格式相同的管理员用户名,他就可以访问所有内容。
0 投票
1 回答
135 浏览

mongodb - 用于 MongoDB 的 Grails 3 和 GORM 6 - 重复键错误

环境:

  • 圣杯 3.2.9
  • 用于 MongoDB 3.4.2 的 GORM 6.1.2

这是我的(简化的)域类

如您所见,我将slug属性映射为 document _id

我可以成功地添加一个文档

一切正常。但是如果我再次执行相同的insert命令,我会得到一个重复的键异常:

虽然我会期待一个简单的验证错误,说明重复的密钥。

然而,尽管unique约束失败,但其他两个的验证被正确触发(空值或例如'Dal05' - 不允许大写字母-)。

没有在属性上映射 id slug,所以保留默认assigned逻辑,一切都按预期工作。

我错过了什么吗?提前致谢!

0 投票
3 回答
851 浏览

grails - Json调用rest url到grails gsp页面

我试图找到一个示例来展示我如何呈现这样的休息网址:http://localhost:8080/api/Cars在 gsp 页面中。

我已经尝试了人们提供的每个示例。其中没有一个是完全正确的,或者它不适合我。

我尝试过的一些东西是 grails.converters.JSON.parse、Jsonslurper、HTTPBuilder。

有人可以逐步介绍如何从以下网址拨打电话:“ http://localhost:8080/api/Cars ”到将 json 渲染为 gsp 页面的控制器。

顺便说一句,我正在使用 grails 3。

提前致谢

0 投票
1 回答
71 浏览

spring-security - Grails 3.2.9、JDK 1.8.0_73、Spring Security Core 3.1.2 插件

我犯了一个错误,在 BootStrap.groovy 中添加了以下内容:

可以预见的是,这在 Grails 启动时会产生错误:

解析表达式'ADMIN_GROUP,SUPER_USER_GROUP'时出错:EL1041E:解析有效表达式后,表达式中仍有更多数据:'comma(,)'

阅读文档,我意识到 configAttribute 需要以 ROLE_ 开头。所以我把它改成:

我在 Grails 启动时遇到了同样的解析错误。

然后我从 init 中删除了所有代码,但在启动时仍然得到解析错误。

然后我将 springSecurityService.clearCachedRequestmaps() 添加到 init 中,同样的问题。我无法运行该项目。