|
6 | 6 | import java.util.HashMap; |
7 | 7 | import java.util.List; |
8 | 8 | import java.util.Map; |
| 9 | +import java.util.Objects; |
9 | 10 | import com.fasterxml.jackson.core.JsonProcessingException; |
10 | 11 | import com.fasterxml.jackson.databind.JsonNode; |
11 | 12 | import com.fasterxml.jackson.databind.node.BooleanNode; |
|
15 | 16 | import io.sentrius.sso.core.annotations.LimitAccess; |
16 | 17 | import io.sentrius.sso.core.config.SystemOptions; |
17 | 18 | import io.sentrius.sso.core.controllers.BaseController; |
| 19 | +import io.sentrius.sso.core.dto.HostGroupDTO; |
| 20 | +import io.sentrius.sso.core.dto.UserPublicKeyDTO; |
18 | 21 | import io.sentrius.sso.core.exceptions.ZtatException; |
| 22 | +import io.sentrius.sso.core.model.hostgroup.HostGroup; |
19 | 23 | import io.sentrius.sso.core.model.security.UserType; |
20 | 24 | import io.sentrius.sso.core.model.security.enums.UserAccessEnum; |
21 | 25 | import io.sentrius.sso.core.model.users.User; |
|
24 | 28 | import io.sentrius.sso.core.model.users.UserConfig; |
25 | 29 | import io.sentrius.sso.core.model.users.UserPublicKey; |
26 | 30 | import io.sentrius.sso.core.model.users.UserSettings; |
| 31 | +import io.sentrius.sso.core.services.ConfigurationService; |
27 | 32 | import io.sentrius.sso.core.services.ErrorOutputService; |
28 | 33 | import io.sentrius.sso.core.services.HostGroupService; |
29 | 34 | import io.sentrius.sso.core.services.SessionService; |
@@ -438,24 +443,51 @@ private List<Map<String, Object>> getAgentSessionDurations() { |
438 | 443 | // Public Key Management Endpoints |
439 | 444 |
|
440 | 445 | @GetMapping("/publickeys") |
441 | | - public ResponseEntity<List<UserPublicKey>> getUserPublicKeys(HttpServletRequest request, HttpServletResponse response) { |
| 446 | + public ResponseEntity<List<UserPublicKeyDTO>> getUserPublicKeys(HttpServletRequest request, |
| 447 | + HttpServletResponse response) { |
442 | 448 | var user = userService.getOperatingUser(request, response, null); |
443 | 449 | var publicKeys = userPublicKeyService.getPublicKeysForUser(user.getId()); |
444 | | - return ResponseEntity.ok(publicKeys); |
| 450 | + List<UserPublicKeyDTO> publicKeyDTOs = new ArrayList<>(); |
| 451 | + for (UserPublicKey key : publicKeys) { |
| 452 | + UserPublicKeyDTO dto = UserPublicKeyDTO.builder().build(); |
| 453 | + //dto.setId(key.getId()); |
| 454 | + dto.setKeyName(key.getKeyName()); |
| 455 | + dto.setKeyType(key.getKeyType()); |
| 456 | + dto.setPublicKey(key.getPublicKey()); |
| 457 | + dto.setIsEnabled(key.getIsEnabled()); |
| 458 | + if (key.getHostGroup() != null) { |
| 459 | + dto.setHostGroup( HostGroupDTO.builder().groupId(key.getHostGroup().getId()).build()); |
| 460 | + //dto.setHostGroupName(key.getHostGroup().getName()); |
| 461 | + } |
| 462 | + publicKeyDTOs.add(dto); |
| 463 | + } |
| 464 | + return ResponseEntity.ok(publicKeyDTOs); |
445 | 465 | } |
446 | 466 |
|
447 | 467 | @PostMapping("/publickeys") |
448 | | - public ResponseEntity<ObjectNode> addPublicKey(HttpServletRequest request, HttpServletResponse response, @RequestBody UserPublicKey publicKey) { |
| 468 | + public ResponseEntity<ObjectNode> addPublicKey(HttpServletRequest request, HttpServletResponse response, @RequestBody |
| 469 | + UserPublicKeyDTO publicKey) { |
449 | 470 | ObjectNode node = JsonUtil.MAPPER.createObjectNode(); |
450 | 471 | try { |
| 472 | + |
| 473 | + HostGroup hostGroup = hostGroupService.getHostGroup(publicKey.getHostGroup().getGroupId()); |
| 474 | + Objects.requireNonNull(hostGroup); |
| 475 | + |
| 476 | + UserPublicKey key = new UserPublicKey(); |
| 477 | + key.setKeyName(publicKey.getKeyName()); |
| 478 | + key.setKeyType(publicKey.getKeyType()); |
| 479 | + key.setPublicKey(publicKey.getPublicKey()); |
| 480 | + key.setIsEnabled(publicKey.getIsEnabled()); |
| 481 | + key.setHostGroup(hostGroup); |
| 482 | + |
451 | 483 | var user = userService.getOperatingUser(request, response, null); |
452 | | - publicKey.setUser(user); |
| 484 | + key.setUser(user); |
453 | 485 |
|
454 | | - if (publicKey.getCreatedAt() == null) { |
455 | | - publicKey.setCreatedAt(new java.sql.Timestamp(System.currentTimeMillis())); |
| 486 | + if (key.getCreatedAt() == null) { |
| 487 | + key.setCreatedAt(new java.sql.Timestamp(System.currentTimeMillis())); |
456 | 488 | } |
457 | 489 |
|
458 | | - var savedKey = userPublicKeyService.addPublicKey(publicKey); |
| 490 | + var savedKey = userPublicKeyService.addPublicKey(key); |
459 | 491 | node.put("status", "Public key successfully added"); |
460 | 492 | node.put("id", savedKey.getId()); |
461 | 493 | return ResponseEntity.ok(node); |
|
0 commit comments