我需要在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)
我执行了
"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
,但现在这个消费者没有运行。如何删除这个消费组?
我正在尝试将 LDAP Active Directory 与 Keycloak 集成。我已经能够使用按 LDAP 属性过滤的自定义用户 LDAP 过滤器同步 LDAP 用户 - (theAttribute=theValue)。有没有按组过滤的方法/语法?例如,假设我有 Active Directory 组“我的组”,并且我只想与该组中的 Keycloak 用户同步。什么是搜索自定义用户 LDAP 过滤器?
我有以下代码:
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页面呢?该页面在真实浏览器中正确加载.
我期待 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)