Skip to content

Commit 55e3f5a

Browse files
committed
[keycloak] add user details endpoint
1 parent adcad3a commit 55e3f5a

3 files changed

Lines changed: 28 additions & 0 deletions

File tree

server/keycloak/src/main/java/com/recipefy/keycloak/controller/AuthController.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import org.springframework.web.server.ResponseStatusException;
1212
import reactor.core.publisher.Mono;
1313

14+
import java.util.UUID;
15+
1416
@RestController
1517
@RequestMapping("/auth")
1618
@RequiredArgsConstructor
@@ -41,4 +43,9 @@ public Mono<UserInfoResponse> userInfo(@RequestHeader(HttpHeaders.AUTHORIZATION)
4143
public Mono<TokenResponse> refreshToken(@Valid @RequestBody RefreshTokenRequest request) {
4244
return keycloakService.refreshToken(request);
4345
}
46+
47+
@GetMapping("/users/{userId}")
48+
public Mono<UserDetails> getUser(@PathVariable UUID userId) {
49+
return keycloakService.getUser(userId);
50+
}
4451
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.recipefy.keycloak.model;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class UserDetails {
7+
private String id;
8+
private String username;
9+
private String firstName;
10+
private String lastName;
11+
private String email;
12+
private Boolean emailVerified;
13+
}

server/keycloak/src/main/java/com/recipefy/keycloak/service/KeycloakService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import reactor.core.publisher.Mono;
1313

1414
import java.util.List;
15+
import java.util.UUID;
1516

1617
@Service
1718
@RequiredArgsConstructor
@@ -81,4 +82,11 @@ public Mono<TokenResponse> refreshToken(RefreshTokenRequest request) {
8182
.retrieve()
8283
.bodyToMono(TokenResponse.class);
8384
}
85+
86+
public Mono<UserDetails> getUser(UUID userId) {
87+
return keycloakAdminClient.get()
88+
.uri(properties.getAdminUri() + "/users/" + userId)
89+
.retrieve()
90+
.bodyToMono(UserDetails.class);
91+
}
8492
}

0 commit comments

Comments
 (0)