register keycloak user (needs manage realm-user privilege)
This commit is contained in:
		| @@ -18,7 +18,7 @@ apply plugin: 'war' | |||||||
| apply plugin: 'application' | apply plugin: 'application' | ||||||
|  |  | ||||||
| group = 'de.jottyfan.camporganizer' | group = 'de.jottyfan.camporganizer' | ||||||
| version = '0.1.5' | version = '0.1.6' | ||||||
| sourceCompatibility = 17 | sourceCompatibility = 17 | ||||||
| mainClassName = "de.jottyfan.camporganizer.Main" | mainClassName = "de.jottyfan.camporganizer.Main" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2,7 +2,6 @@ package de.jottyfan.camporganizer.module.registration; | |||||||
|  |  | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
|  |  | ||||||
| import javax.ws.rs.client.Client; |  | ||||||
| import javax.ws.rs.core.Response; | import javax.ws.rs.core.Response; | ||||||
| import javax.ws.rs.core.Response.Status; | import javax.ws.rs.core.Response.Status; | ||||||
|  |  | ||||||
| @@ -100,19 +99,36 @@ public class KeycloakRepository { | |||||||
| 	 */ | 	 */ | ||||||
| 	protected boolean register(UsersResource resource, UserRepresentation user) { | 	protected boolean register(UsersResource resource, UserRepresentation user) { | ||||||
| 		Response response = resource.create(user); | 		Response response = resource.create(user); | ||||||
|  | 		LOGGER.info("created new keycloak user {}", user.getUsername()); | ||||||
| 		return Status.OK.equals(response.getStatusInfo()); | 		return Status.OK.equals(response.getStatusInfo()); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public Client getClient() { | 	/** | ||||||
| 		return new ResteasyClientBuilderImpl().connectionPoolSize(10).build(); | 	 * generate a keycloak object with the special arguments | ||||||
| 	} | 	 * | ||||||
|  | 	 * @param url the url | ||||||
|  | 	 * @param realm the realm | ||||||
|  | 	 * @param admin the admin of the realm | ||||||
|  | 	 * @param password the password | ||||||
|  | 	 * @param clientId the client ID | ||||||
|  | 	 * @return the keycloak object | ||||||
|  | 	 */ | ||||||
| 	public KeycloakBuilder getKeycloak(String url, String realm, String admin, String password, String clientId) { | 	public KeycloakBuilder getKeycloak(String url, String realm, String admin, String password, String clientId) { | ||||||
| 		return KeycloakBuilder.builder().serverUrl(url).realm(realm).grantType(OAuth2Constants.PASSWORD) | 		return KeycloakBuilder.builder().serverUrl(url).realm(realm).grantType(OAuth2Constants.PASSWORD) | ||||||
| 				.username(admin).password(password).clientId(clientId) | 				.username(admin).password(password).clientId(clientId) | ||||||
| 				.resteasyClient(getClient()); | 				.resteasyClient(new ResteasyClientBuilderImpl().connectionPoolSize(10).build()); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * generate a users resource object | ||||||
|  | 	 * | ||||||
|  | 	 * @param url the url | ||||||
|  | 	 * @param realm the realm | ||||||
|  | 	 * @param admin the admin of the realm | ||||||
|  | 	 * @param password the password | ||||||
|  | 	 * @param clientId the client ID | ||||||
|  | 	 * @return the users resource | ||||||
|  | 	 */ | ||||||
| 	public UsersResource getUsersResource(String url, String realm, String admin, String password, String clientId) { | 	public UsersResource getUsersResource(String url, String realm, String admin, String password, String clientId) { | ||||||
| 		return getKeycloak(url, realm, admin, password, clientId).build().realm(realm).users(); | 		return getKeycloak(url, realm, admin, password, clientId).build().realm(realm).users(); | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ public class TestKeycloakRepository { | |||||||
| 	public void testRegister() { | 	public void testRegister() { | ||||||
| 		KeycloakRepository repository = new KeycloakRepository(); | 		KeycloakRepository repository = new KeycloakRepository(); | ||||||
| 		UserRepresentation user = repository.getUserRepresentation("Hans", "Dampf", "hans@dampf.org"); | 		UserRepresentation user = repository.getUserRepresentation("Hans", "Dampf", "hans@dampf.org"); | ||||||
| 		UsersResource resource = repository.getUsersResource("http://localhost:8080", "ow", "admin", "password", "biblecamp"); | 		UsersResource resource = repository.getUsersResource("http://localhost:8080", "ow", "owadmin", "password", "biblecamp"); | ||||||
| 		assertTrue(repository.register(resource, user)); | 		assertTrue(repository.register(resource, user)); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user