我有一个spring-boot-starter-security的spring-boot应用程序,我已经将Keycloak集成到Spring Boot应用程序中,用于身份验证/授权。我想从KeyCloak获取用户组,并在SpringBoot应用程序中显示它们。你知道从KeyCloak获取用户组并在屏幕上显示它们的方法吗?应该有一个实现来提供它?
这是我的SecurityConfiguration java:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableWebSecurity
public class KeyCloakSecurityConfig extends WebSecurityConfigurerAdapter {
private final KeycloakJwtConfig keycloakJwtConfig;
@Override
public void configure(final HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.csrf().disable()
.formLogin().disable()
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/actuator/health").permitAll()
.anyRequest().authenticated()
.and()
.oauth2ResourceServer()
.jwt()
.jwtAuthenticationConverter(new JwtAuthoritiesExtractor())
.jwkSetUri(this.keycloakJwtConfig.jwkSetUri());
}
@Autowired
public SecurityConfiguration(final KeycloakJwtConfig keycloakJwtConfig) {
keycloakJwtConfig = keycloakJwtConfig;
}
为了在Java中列出Keycloak领域中的所有用户组,您可以使用Keycloak提供的Keycloak Admin REST客户端库,这些库可以在公共Maven存储库中获得:groupid=org.Keycloak
,artifactid=keyCloak-admin-client
,版本与您的Keycloak服务器相同(至少主要部分和次要部分相同)。基本上,使用这个库,您可以创建一个Keycloak
实例,然后选择域,并从中获取组,例如,如服务器开发人员指南中的Admin REST API>Example using Java一节和Keycloak github上的GroupTest测试用例(方法SearchandCountGroups
)所示。
Keycloak keycloak = Keycloak.getInstance(
"http://localhost:8080/auth",
"master",
"admin",
"password",
"admin-cli");
RealmRepresentation realm = keycloak.realm("master").toRepresentation();
for (GroupRepresentation group : realm.groups().groups())
{
// Display group.getId(), group.getName(), etc.
}
嗨,我正在尝试使用Keycloak API,但我不太了解它的工作原理。我想获取一个领域的所有用户。所以我首先使用此endpoint获取一个令牌:在请求正文中使用此参数: client_id grant_type 用户名 密码 client_secret 第一个问题是:我应该使用什么客户端? 然后,我使用授权标头中的令牌调用此endpoint:
null 谢谢
嗨,我试图从LDAP和该组中的用户获取所有postxGroup。下面的代码是我到目前为止所做的,它返回我所有的组,但我不知道如何获得这些组的用户。请指导我这种做法好吗?或者我应该先得到用户,然后根据GID得到组名?
我试图为Java中的abject数组获取用户输入。但它工作不正常。我创建了第一个类并声明了所有属性,还创建了构造函数、geter和seter。但是当我在数组中保存对象时,它不能正常工作