Skip to content

Commit 4632c40

Browse files
committed
TMP
1 parent 510cf50 commit 4632c40

7 files changed

Lines changed: 30 additions & 267 deletions

File tree

openaev-api/src/main/java/io/openaev/config/security/SecurityService.java

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,21 @@
22

33
import static java.util.Optional.ofNullable;
44
import static org.springframework.util.StringUtils.hasLength;
5-
import static org.springframework.util.StringUtils.hasText;
65

7-
import io.openaev.database.model.Tenant;
86
import io.openaev.database.model.User;
97
import io.openaev.database.repository.UserRepository;
108
import io.openaev.service.UserMappingService;
119
import io.openaev.service.UserService;
12-
import io.openaev.service.tenants.TenantService;
1310
import io.openaev.service.user_events.UserEventService;
14-
import jakarta.persistence.EntityNotFoundException;
1511
import jakarta.validation.constraints.NotBlank;
1612
import java.util.ArrayList;
1713
import java.util.List;
1814
import java.util.Optional;
1915
import java.util.UUID;
2016
import lombok.RequiredArgsConstructor;
21-
import lombok.extern.slf4j.Slf4j;
2217
import org.springframework.core.env.Environment;
2318
import org.springframework.stereotype.Service;
2419

25-
@Slf4j
2620
@Service
2721
@RequiredArgsConstructor
2822
public class SecurityService {
@@ -32,15 +26,13 @@ public class SecurityService {
3226
public static final String GROUPS_MANAGEMENT_SUFFIX = ".groups_management";
3327
public static final String ALL_ADMIN_PATH_SUFFIX = ".all_admin";
3428
public static final String AUDIENCE_PATH = ".audience";
35-
public static final String TENANT_ID_SUFFIX = ".tenant_id";
3629
public static final String REGISTRATION_ID = "registration_id";
3730

3831
private final UserRepository userRepository;
3932
private final UserService userService;
4033
private final UserMappingService userMappingService;
4134
private final Environment env;
4235
private final UserEventService userEventService;
43-
private final TenantService tenantService;
4436

4537
public User userManagement(
4638
String emailAttribute,
@@ -68,7 +60,6 @@ public User userManagement(
6860
String.class,
6961
"");
7062
userMappingService.mapCurrentUserWithGroup(groupsManagementObject, user, groups);
71-
attachTenant(registrationId, user);
7263
return this.userService.saveUser(user);
7364
} else {
7465
// If user exists, update it
@@ -85,7 +76,6 @@ public User userManagement(
8576
String.class,
8677
"");
8778
userMappingService.mapCurrentUserWithGroup(groupsManagementObject, currentUser, groups);
88-
attachTenant(registrationId, currentUser);
8979
return this.userService.saveUser(currentUser);
9080
}
9181
}
@@ -101,26 +91,6 @@ public String getAudience(@NotBlank final String registrationId) {
10191

10292
// -- PRIVATE --
10393

104-
/** Attaches the user to the tenant configured for the given SSO provider registration. */
105-
private void attachTenant(String registrationId, User user) {
106-
String tenantId =
107-
env.getProperty(
108-
OPENAEV_PROVIDER_PATH_PREFIX + registrationId + TENANT_ID_SUFFIX, String.class, "");
109-
if (!hasText(tenantId)) {
110-
return;
111-
}
112-
boolean alreadyAttached = user.getTenants().stream().anyMatch(t -> t.getId().equals(tenantId));
113-
if (alreadyAttached) {
114-
return;
115-
}
116-
try {
117-
Tenant tenant = tenantService.findById(tenantId);
118-
user.getTenants().add(tenant);
119-
} catch (EntityNotFoundException e) {
120-
log.warn("SSO tenant ID '{}' configured but not found in database", tenantId);
121-
}
122-
}
123-
12494
private List<String> getAdminRoles(@NotBlank final String registrationId) {
12595
String rolesAdminConfig =
12696
OPENAEV_PROVIDER_PATH_PREFIX + registrationId + ROLES_ADMIN_PATH_SUFFIX;

openaev-api/src/main/java/io/openaev/service/UserMappingService.java

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@
55
import com.fasterxml.jackson.core.type.TypeReference;
66
import com.fasterxml.jackson.databind.ObjectMapper;
77
import io.openaev.database.model.Group;
8-
import io.openaev.database.model.Tenant;
98
import io.openaev.database.model.User;
109
import io.openaev.database.repository.GroupRepository;
11-
import io.openaev.service.tenants.TenantService;
1210
import io.openaev.sso.GroupMapping;
13-
import jakarta.persistence.EntityNotFoundException;
1411
import jakarta.validation.constraints.NotBlank;
1512
import java.io.IOException;
1613
import java.util.ArrayList;
@@ -32,7 +29,6 @@
3229
public class UserMappingService {
3330

3431
private final GroupRepository groupRepository;
35-
private final TenantService tenantService;
3632
private final Environment env;
3733
public static final String ROLES_PATH_SUFFIX = "roles_path";
3834
public static final String GROUPS_PATH_SUFFIX = "groups_path";
@@ -68,7 +64,6 @@ public void mapCurrentUserWithGroup(String property, User user, List<String> gro
6864
log.error("Did not create new group");
6965
}
7066
}
71-
attachTenantFromGroupMapping(mapping, user);
7267
} else {
7368
log.error(String.format("No corresponding group found for group %s", role));
7469
}
@@ -91,35 +86,14 @@ public void mapCurrentUserWithGroup(String property, User user, List<String> gro
9186
private static List<GroupMapping> safeParseMappings(String json) {
9287
ObjectMapper mapper = new ObjectMapper();
9388
try {
94-
return mapper.readValue(json, new TypeReference<>() {});
89+
return mapper.readValue(json, new TypeReference<List<GroupMapping>>() {});
9590
} catch (IOException e) {
9691
// Log and return empty list instead of throwing
97-
log.error("Failed to parse group mappings: {}", e.getMessage(), e);
92+
System.err.println("Failed to parse mappings: " + e.getMessage());
9893
return List.of();
9994
}
10095
}
10196

102-
/**
103-
* Attaches the user to the tenant configured in the group mapping, if any. Skips if tenantId is
104-
* not set, the user is already attached, or the tenant is not found.
105-
*/
106-
private void attachTenantFromGroupMapping(GroupMapping mapping, User user) {
107-
String tenantId = mapping.getTenantId();
108-
if (tenantId == null || tenantId.isBlank()) {
109-
return;
110-
}
111-
boolean alreadyAttached = user.getTenants().stream().anyMatch(t -> t.getId().equals(tenantId));
112-
if (alreadyAttached) {
113-
return;
114-
}
115-
try {
116-
Tenant tenant = tenantService.findById(tenantId);
117-
user.getTenants().add(tenant);
118-
} catch (EntityNotFoundException e) {
119-
log.warn("Group mapping tenant ID '{}' configured but not found in database", tenantId);
120-
}
121-
}
122-
12397
/**
12498
* Extract the roles from a user
12599
*

openaev-api/src/main/java/io/openaev/sso/GroupMapping.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,4 @@ public class GroupMapping {
1414

1515
@JsonProperty("autoCreate")
1616
private boolean autoCreate;
17-
18-
@JsonProperty("tenantId")
19-
private String tenantId;
2017
}

openaev-api/src/main/resources/application.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@ openaev.auth-saml2-enable=false
169169
# openaev.provider.{registrationId}.roles_admin=
170170
# openaev.provider.{registrationId}.audience=
171171
# openaev.provider.{registrationId}.groups_management=
172-
# openaev.provider.{registrationId}.tenant_id=
173172

174173
## Kerberos
175174
openaev.auth-kerberos-enable=false

openaev-api/src/test/java/io/openaev/config/security/SecurityServiceTest.java

Lines changed: 0 additions & 150 deletions
This file was deleted.

0 commit comments

Comments
 (0)