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")
|
@Path("/api/roles")
|
||||||
@RegisterRestClient(configKey = "lions-user-manager-api")
|
@RegisterRestClient(configKey = "lions-user-manager-api")
|
||||||
@RegisterClientHeaders(AdminServiceTokenHeadersFactory.class)
|
@RegisterClientHeaders(OidcTokenPropagationHeadersFactory.class)
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
public interface RoleServiceClient {
|
public interface RoleServiceClient {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
|
|||||||
*/
|
*/
|
||||||
@Path("/api/users")
|
@Path("/api/users")
|
||||||
@RegisterRestClient(configKey = "lions-user-manager-api")
|
@RegisterRestClient(configKey = "lions-user-manager-api")
|
||||||
@RegisterClientHeaders(AdminServiceTokenHeadersFactory.class)
|
@RegisterClientHeaders(OidcTokenPropagationHeadersFactory.class)
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
@Consumes(MediaType.APPLICATION_JSON)
|
@Consumes(MediaType.APPLICATION_JSON)
|
||||||
public interface UserServiceClient {
|
public interface UserServiceClient {
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package dev.lions.unionflow.server.service;
|
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.RoleServiceClient;
|
||||||
import dev.lions.unionflow.server.client.UserServiceClient;
|
|
||||||
import dev.lions.user.manager.dto.role.RoleDTO;
|
import dev.lions.user.manager.dto.role.RoleDTO;
|
||||||
import dev.lions.user.manager.dto.user.UserDTO;
|
import dev.lions.user.manager.dto.user.UserDTO;
|
||||||
import dev.lions.user.manager.dto.user.UserSearchCriteriaDTO;
|
import dev.lions.user.manager.dto.user.UserSearchCriteriaDTO;
|
||||||
@@ -27,11 +28,11 @@ public class AdminUserService {
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@RestClient
|
@RestClient
|
||||||
UserServiceClient userServiceClient;
|
AdminUserServiceClient userServiceClient;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@RestClient
|
@RestClient
|
||||||
RoleServiceClient roleServiceClient;
|
AdminRoleServiceClient roleServiceClient;
|
||||||
|
|
||||||
public UserSearchResultDTO searchUsers(int page, int size, String searchTerm) {
|
public UserSearchResultDTO searchUsers(int page, int size, String searchTerm) {
|
||||||
UserSearchCriteriaDTO criteria = UserSearchCriteriaDTO.builder()
|
UserSearchCriteriaDTO criteria = UserSearchCriteriaDTO.builder()
|
||||||
|
|||||||
Reference in New Issue
Block a user