24.2. 使用带有 OAuth 身份验证的自定义授权程序
当使用带有 groupsClaim
配置的 oauth
身份验证从 JWT 令牌中提取用户组信息时,可以在自定义授权调用中使用组信息。组可以在自定义授权调用过程中通过 OAuthKafkaPrincipal
对象访问,如下所示:
public List<AuthorizationResult> authorize(AuthorizableRequestContext requestContext, List<Action> actions) { KafkaPrincipal principal = requestContext.principal(); if (principal instanceof OAuthKafkaPrincipal) { OAuthKafkaPrincipal p = (OAuthKafkaPrincipal) principal; for (String group: p.getGroups()) { System.out.println("Group: " + group); } } }
public List<AuthorizationResult> authorize(AuthorizableRequestContext requestContext, List<Action> actions) {
KafkaPrincipal principal = requestContext.principal();
if (principal instanceof OAuthKafkaPrincipal) {
OAuthKafkaPrincipal p = (OAuthKafkaPrincipal) principal;
for (String group: p.getGroups()) {
System.out.println("Group: " + group);
}
}
}