fix(admin): AdminUserService doit utiliser AdminUserServiceClient et AdminRoleServiceClient
Le service admin injectait UserServiceClient/RoleServiceClient (propagation du token utilisateur unionflow) au lieu des clients Admin dédiés (service account lions-user-manager). Résultat : le token JWT de l'utilisateur mobile était envoyé à LUM → 401 car LUM ne connaît pas les clés du realm unionflow. Correctif : - AdminUserService -> AdminUserServiceClient + AdminRoleServiceClient (service account) - UserServiceClient + RoleServiceClient remis à OidcTokenPropagationHeadersFactory (ces clients non-admin propagent le token utilisateur pour des usages futurs)
This commit is contained in:
@@ -14,7 +14,7 @@ import java.util.List;
|
||||
*/
|
||||
@Path("/api/roles")
|
||||
@RegisterRestClient(configKey = "lions-user-manager-api")
|
||||
@RegisterClientHeaders(AdminServiceTokenHeadersFactory.class)
|
||||
@RegisterClientHeaders(OidcTokenPropagationHeadersFactory.class)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
public interface RoleServiceClient {
|
||||
|
||||
@@ -17,7 +17,7 @@ import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
|
||||
*/
|
||||
@Path("/api/users")
|
||||
@RegisterRestClient(configKey = "lions-user-manager-api")
|
||||
@RegisterClientHeaders(AdminServiceTokenHeadersFactory.class)
|
||||
@RegisterClientHeaders(OidcTokenPropagationHeadersFactory.class)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
public interface UserServiceClient {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package dev.lions.unionflow.server.service;
|
||||
|
||||
import dev.lions.unionflow.server.client.AdminRoleServiceClient;
|
||||
import dev.lions.unionflow.server.client.AdminUserServiceClient;
|
||||
import dev.lions.unionflow.server.client.RoleServiceClient;
|
||||
import dev.lions.unionflow.server.client.UserServiceClient;
|
||||
import dev.lions.user.manager.dto.role.RoleDTO;
|
||||
import dev.lions.user.manager.dto.user.UserDTO;
|
||||
import dev.lions.user.manager.dto.user.UserSearchCriteriaDTO;
|
||||
@@ -27,11 +28,11 @@ public class AdminUserService {
|
||||
|
||||
@Inject
|
||||
@RestClient
|
||||
UserServiceClient userServiceClient;
|
||||
AdminUserServiceClient userServiceClient;
|
||||
|
||||
@Inject
|
||||
@RestClient
|
||||
RoleServiceClient roleServiceClient;
|
||||
AdminRoleServiceClient roleServiceClient;
|
||||
|
||||
public UserSearchResultDTO searchUsers(int page, int size, String searchTerm) {
|
||||
UserSearchCriteriaDTO criteria = UserSearchCriteriaDTO.builder()
|
||||
|
||||
Reference in New Issue
Block a user