我正在尝试找到一种在 Keycloak 版本 17.0.1 中导入领域的方法,该方法可以在启动 docker 容器(使用 docker-compose)时完成。我希望能够在“启动”模式而不是“启动开发”模式下执行此操作,因为根据我迄今为止的经验,17 中的“启动开发”强制使用 H2/in-mem 数据库,并且不允许我指向我希望在本地运行时能够更类似于开发/生产环境的外部数据库。
我尝试过的事情:
1)根据 Github 上最近的对话(例如问题 10216和问题 10754),用于允许此操作的环境变量(某些版本中的 KEYCLOAK_IMPORT 或 KC_IMPORT_REALM)似乎不再是此操作的触发器。在我的尝试中,它也不适用于 17.0.1 版本。
2)我还尝试在 keycloak 的 docker-compose 设置中附加以下命令,但没有运气(也尝试过仅使用“start”) - 它似乎只是忽略该命令(没有错误或任何内容):
command: ["start-dev", "-Dkeycloak.import=/tmp/my-realm.json"]
3)我尝试在 Dockerfile 中运行 kc.sh 命令“导入”(在入口点/启动之前和之后),但收到错误:索引 1 中的参数不匹配:'/opt/keycloak/bin/kc.sh', 'im端口', '--file', '/tmp/my-realm.json'
4)我已经换档并尝试看看是否可以在容器启动后执行此操作(即使有手动干预)只是为了恢复一些理智。我尝试使用 admin-cli,但在不同的点/端点等进行了多次不同的尝试后,我发现本地主机拒绝连接。
bin/kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password adminpassword
当点击以下端口时进行响应,如下所示:
8080:无法发送请求 - 连接到 localhost:8080 [localhost/127.0.0.1] 失败:连接被拒绝(连接被拒绝)
8443:发送请求失败 - localhost:8443 未能响应
我确信我还尝试过其他方法,但现在却忘记了——此时我已经有点无从下手了。
我的代码(与Keycloak网站上的最新文档基本相同):
Dockerfile:
FROM quay.io/keycloak/keycloak:17.0.1 as …Run Code Online (Sandbox Code Playgroud) 我收到以下错误:
PhantomJS 2.1.1 (Windows 7 0.0.0) ERROR
SyntaxError: Unexpected token '>'
at myAngularControllerPath.js:9
Run Code Online (Sandbox Code Playgroud)
导航到该文件我发现我正在使用Array.some()函数,如下所示:
return list.some(x => isListItemGood(x));
Run Code Online (Sandbox Code Playgroud)
当我使用karma.conf.js文件中指定的Chrome运行Karma时,我没有收到此错误.
根据http://kangax.github.io/compat-table/es5/,PhantomJS支持ES5的所有10个新阵列功能,并且根据https://developer.mozilla.org/在ES5中引入了Array.some().en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some.我使用'npm install --save-dev karma-phantomjs-launcher'安装了PhantomJS,它在其依赖项中列出了2.1.7作为PhantomJS版本.
感谢您的帮助!
本质上,我的数据库中有一列是日期类型,但可以为null。我有一个使用Angular / Bootstrap的表单,该表单允许用户根据需要输入日期,但不必输入日期,为此,我使用Bootstraps表单控件类,并为输入提供日期类型。
第一次为表单加载日期的空值时,一切工作都会保存下来。数据库可以很好地保存它,并且一切都很好。但是,如果数据库中显示的是空值,则当我将记录加载到这种形式时,Angular / Javascript将其显示为12/31/1969,而不是最初加载空值时的“ mm / dd / yyyy”。这会引起问题,因为如果用户保存此表单,它将默认的12/31/1969作为真实日期并将其保存为输入。
我已经通过控制台对其进行了跟踪,并且我100%肯定日期值为null(
),当它碰到我的模型绑定时,我想不起来在这种情况下该怎么做,我真的很感谢任何指针。
在提取数据时:
if (myDateFromDatabase !== null) {
myDateFromDatabase = new Date(myDateFromDatabase);
}
Run Code Online (Sandbox Code Playgroud)
鉴于:
<input ng-model="myDateFromDatabase" type="date" class="form-control" />
Run Code Online (Sandbox Code Playgroud) 在此事先感谢您的帮助!
我希望有人可以帮我弄清楚如何通过Auth0授权扩展中分配的组来授权API访问.
我目前正在使用web api中的[Authorize]属性 - 它允许api调用,如果他们已成功登录并阻止它,如果没有.
但是,如果我尝试[Authorize(Roles ="myGroupName")]授权失败.如果我在Auth0网站上的用户仪表板中手动将其添加到用户app_metadata而不是通过扩展程序分配,则会出现相同的情况.
我的项目是通过遵循Angular Quick Start和Asp.Net Quick Start来设置的.我验证令牌服务器端的webapiconfig是:
class WebApiConfig
{
public static void Register(HttpConfiguration configuration)
{
var clientID = WebConfigurationManager.AppSettings["auth0:ClientId"];
var clientSecret = WebConfigurationManager.AppSettings["auth0:ClientSecret"];
configuration.MessageHandlers.Add(new JsonWebTokenValidationHandler()
{
Audience = clientID,
SymmetricKey = clientSecret
});
configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });
}
}
Run Code Online (Sandbox Code Playgroud) angularjs ×1
asp.net ×1
auth0 ×1
date ×1
docker ×1
javascript ×1
jwt ×1
karma-runner ×1
keycloak ×1
phantomjs ×1
unit-testing ×1