小编IfT*_*rue的帖子

Keycloak 17.0.1 在 Docker / Docker-Compose 启动上导入领域

我正在尝试找到一种在 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)

docker keycloak docker-compose keycloak-rest-api

5
推荐指数
1
解决办法
1万
查看次数

意外的标记'>'使用Array.some()使用Karma和PhantomJS

我收到以下错误:

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版本.

感谢您的帮助!

unit-testing phantomjs karma-runner

4
推荐指数
1
解决办法
1222
查看次数

当日期为空时,如何在日期输入字段中显示“ mm / dd / yyyy”而不是“ 12/31/1969”?

本质上,我的数据库中有一列是日期类型,但可以为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)

javascript date angularjs angular-ui-bootstrap

2
推荐指数
1
解决办法
2601
查看次数

使用Auth0在ASP.NET中通过角色/组进行授权

在此事先感谢您的帮助!

我希望有人可以帮我弄清楚如何通过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)

asp.net authorization jwt asp.net-web-api auth0

2
推荐指数
1
解决办法
2053
查看次数