小编Jac*_*000的帖子

如何在Keycloak中创建脚本映射器?

我需要在Keycloak中创建脚本映射器类型的协议映射器。该脚本应获取用户属性,检查其大小,并将其放在令牌上。我没有找到有关如何创建脚本的文档或示例。从我可以收集的点点滴滴中,我想我的脚本需要看起来像:

var value = user.getAttribute("myAttribute");
if (value.length > LIMIT) {
    value = value.substring(0,LIMIT);
}
token.setOtherClaims("myAttribute",value);
Run Code Online (Sandbox Code Playgroud)
  • 这是正确的吗?我组成了user.getAttribute(“ myAttribute”)。有文档来源可以找到如何获取Keycloak用户属性吗?
  • 脚本需要返回什么吗?任何帮助都将受到欢迎。

java keycloak

6
推荐指数
2
解决办法
4182
查看次数

尝试删除 Kafka 中的消费者组时出现 GroupNotEmptyException

我执行了

"kafka-consumer-groups --bootstrap-server localhost:9092 --list" 
Run Code Online (Sandbox Code Playgroud)

这会导致显示一组:console-consumer-961

然后我尝试删除该组:

kafka-consumer-groups --bootstrap-server localhost:9092 --delete --group console-consumer-961
Run Code Online (Sandbox Code Playgroud)

但这会导致异常:

Error: Deletion of some consumer groups failed:
* Group 'console-consumer-961' could not be deleted due to: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.GroupNotEmptyException: The group is not empty.
Run Code Online (Sandbox Code Playgroud)

我猜这个组是在我运行 kafka- 时创建的console-consumer.bat,但现在这个消费者没有运行。如何删除这个消费组?

apache-kafka kafka-consumer-api

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

Keycloak LDAP 集成:使用自定义用户 LDAP 过滤器按组过滤

我正在尝试将 LDAP Active Directory 与 Keycloak 集成。我已经能够使用按 LDAP 属性过滤的自定义用户 LDAP 过滤器同步 LDAP 用户 - (theAttribute=theValue)。有没有按组过滤的方法/语法?例如,假设我有 Active Directory 组“我的组”,并且我只想与该组中的 Keycloak 用户同步。什么是搜索自定义用户 LDAP 过滤器?

ldap keycloak

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

使用HtmlUnit时找不到404

我有以下代码:

WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://www.myland.co.il/%D7%9E%D7%97%D7%A9%D7%91-%D7%94%D7%A9%D7%A7%D7%99%D7%94");
Run Code Online (Sandbox Code Playgroud)

代码失败,出现com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException:404找不到http://www.myland.co.il/Scripts/swfobject_modified.js

我确实在控制台输出中看到了我感兴趣的HTML页面.有没有办法来抑制异常并获得一个Html页面呢?该页面在真实浏览器中正确加载.

htmlunit

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

PassiveExpiringMap 不使对象过期

我期待 org.apache.commons.collections4.map.PassiveExpiringMap 能够开箱即用。不幸的是,在对象按时过期的最明显用例中,它对我不起作用。下面的代码创建了 5 秒的过期策略。测试等待 10 秒,这是所有地图对象应过期并删除的时间。但他们不是。

import org.apache.commons.collections4.map.PassiveExpiringMap;
import org.junit.Assert;
import org.junit.Test;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
    
public class PassiveExpiringMapTest {
    @Test
    public void givenDataMap_whenWrappingMapWithPassiveExpiringMap_thenObjectsAreRemovedWhenExpired() {
        
        final Map<String, Integer> m = new HashMap<>();
        m.put("one", Integer.valueOf(1));
        m.put("two", Integer.valueOf(2));
        m.put("three", Integer.valueOf(3));

        PassiveExpiringMap.ConstantTimeToLiveExpirationPolicy<String, Integer>
            expirationPolicy = new PassiveExpiringMap.ConstantTimeToLiveExpirationPolicy<>(
            5, TimeUnit.SECONDS);

        PassiveExpiringMap<String, Integer> expiringMap = new PassiveExpiringMap<>(expirationPolicy, m);

        int initialCapacity = expiringMap.size();
        System.out.println("initialCapacity = " + initialCapacity);
        Assert.assertEquals(3, initialCapacity);

        System.out.println("Sleeping...");
        try { Thread.sleep(10000L); } catch (InterruptedException e) { }

        int updatedCapacity = …
Run Code Online (Sandbox Code Playgroud)

java collections apache-commons

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