Scala-Lagom开发模式和;码头工人

Scala-Lagom开发模式和;码头工人,scala,docker,playframework,jwt,lagom,Scala,Docker,Playframework,Jwt,Lagom,我们在Lagom上建立了Scala服务。部署时,我们使用JWT对连接进行身份验证 在本地,我们开发人员使用sbt runAll来运行我们的服务。这很好,它绕过了JWT认证(我假设是因为Lagom在运行runAll时的开发模式) 然而,我们希望在Docker容器中本地运行单元测试(一些其他服务被模拟,但使用真实的mysql和导入的测试数据)。在docker容器中,使用JWT身份验证(可能是因为它没有在开发模式下运行)。这使得运行测试变得更加困难 在通过docker部署时,是否有一种方法也可以启用开

我们在Lagom上建立了Scala服务。部署时,我们使用JWT对连接进行身份验证

在本地,我们开发人员使用
sbt runAll
来运行我们的服务。这很好,它绕过了JWT认证(我假设是因为Lagom在运行
runAll
时的开发模式)

然而,我们希望在Docker容器中本地运行单元测试(一些其他服务被模拟,但使用真实的mysql和导入的测试数据)。在docker容器中,使用JWT身份验证(可能是因为它没有在开发模式下运行)。这使得运行测试变得更加困难

在通过docker部署时,是否有一种方法也可以启用开发模式(最好是通过一个env变量,这样我们就可以只在本地实例上启用开发模式,而在部署的集群上禁用开发模式)

非常感谢,,
Volker

你能解释一下JWT认证是什么意思吗?Lagom不提供任何现成的JWT身份验证功能。Lagom所处的Play确实提供了基于JWT的赛季管理,但它不会通过Lagom API公开,也不会在开发模式下禁用


因此,无论这些JWT功能是什么,它们都可能是由第三方库提供的,或者是您自己的应用程序提供的。

您能解释一下JWT身份验证的含义吗?Lagom不提供任何现成的JWT身份验证功能。Lagom所处的Play确实提供了基于JWT的赛季管理,但它不会通过Lagom API公开,也不会在开发模式下禁用


因此,无论这些JWT功能是什么,它们都可能是由第三方库提供的,或者是您自己的应用程序提供的。

我们使用的是
org.pac4j.lagom.JWT.JwtAuthenticatorHelper
。我们有一个
trait-SecurityModule扩展了LagomConfigComponent
,它使用pac4j来实现许多不同的
HeaderClient
s。然后,我们有一个
HeaderFilter
,如果没有设置开发模式(
val mode=Play.maybeaapplication.map(u.mode).getOrElse(dev);if(mode==Prod)…
),它会过滤掉请求。问题是如何在Docker容器中运行时以开发模式启动Play。如果可以检查开发模式,也可以检查Docker设置的环境变量。不需要开发模式。我们使用的是
org.pac4j.lagom.jwt.JwtAuthenticatorHelper
。我们有一个
trait-SecurityModule扩展了LagomConfigComponent
,它使用pac4j来实现许多不同的
HeaderClient
s。然后,我们有一个
HeaderFilter
,如果没有设置开发模式(
val mode=Play.maybeaapplication.map(u.mode).getOrElse(dev);if(mode==Prod)…
),它会过滤掉请求。问题是如何在Docker容器中运行时以开发模式启动Play。如果可以检查开发模式,也可以检查Docker设置的环境变量。不需要开发模式。