|
1 | 1 | package invite; |
2 | 2 |
|
3 | | -import invite.config.HashGenerator; |
4 | | -import invite.crm.CRMContact; |
5 | | -import invite.crm.CRMOrganisation; |
6 | | -import invite.crm.CRMRole; |
7 | | -import invite.eduid.EduIDProvision; |
8 | | -import invite.manage.EntityType; |
9 | | -import invite.manage.LocalManage; |
10 | | -import invite.model.*; |
11 | | -import invite.provision.scim.GroupURN; |
12 | | -import invite.repository.*; |
13 | 3 | import com.fasterxml.jackson.core.JsonProcessingException; |
14 | 4 | import com.fasterxml.jackson.core.type.TypeReference; |
15 | 5 | import com.fasterxml.jackson.databind.ObjectMapper; |
|
23 | 13 | import com.nimbusds.jose.jwk.RSAKey; |
24 | 14 | import com.nimbusds.jwt.JWTClaimsSet; |
25 | 15 | import com.nimbusds.jwt.SignedJWT; |
| 16 | +import invite.config.HashGenerator; |
| 17 | +import invite.crm.CRMContact; |
| 18 | +import invite.crm.CRMOrganisation; |
| 19 | +import invite.crm.CRMRole; |
| 20 | +import invite.eduid.EduIDProvision; |
| 21 | +import invite.manage.EntityType; |
| 22 | +import invite.manage.LocalManage; |
| 23 | +import invite.model.APIToken; |
| 24 | +import invite.model.Application; |
| 25 | +import invite.model.ApplicationUsage; |
| 26 | +import invite.model.Authority; |
| 27 | +import invite.model.Invitation; |
| 28 | +import invite.model.InvitationRole; |
| 29 | +import invite.model.Language; |
| 30 | +import invite.model.Organisation; |
| 31 | +import invite.model.RemoteProvisionedUser; |
| 32 | +import invite.model.RequestedAuthnContext; |
| 33 | +import invite.model.Role; |
| 34 | +import invite.model.User; |
| 35 | +import invite.model.UserRole; |
| 36 | +import invite.model.UserRoleAudit; |
| 37 | +import invite.provision.scim.GroupURN; |
| 38 | +import invite.repository.APITokenRepository; |
| 39 | +import invite.repository.ApplicationRepository; |
| 40 | +import invite.repository.ApplicationUsageRepository; |
| 41 | +import invite.repository.InvitationRepository; |
| 42 | +import invite.repository.OrganisationRepository; |
| 43 | +import invite.repository.RemoteProvisionedGroupRepository; |
| 44 | +import invite.repository.RemoteProvisionedUserRepository; |
| 45 | +import invite.repository.RoleRepository; |
| 46 | +import invite.repository.UserRepository; |
| 47 | +import invite.repository.UserRoleAuditRepository; |
| 48 | +import invite.repository.UserRoleRepository; |
26 | 49 | import io.restassured.RestAssured; |
27 | 50 | import io.restassured.common.mapper.TypeRef; |
28 | 51 | import io.restassured.config.ObjectMapperConfig; |
|
54 | 77 | import java.io.IOException; |
55 | 78 | import java.net.URLDecoder; |
56 | 79 | import java.nio.charset.StandardCharsets; |
57 | | -import java.security.*; |
| 80 | +import java.security.KeyPair; |
| 81 | +import java.security.KeyPairGenerator; |
| 82 | +import java.security.NoSuchAlgorithmException; |
| 83 | +import java.security.NoSuchProviderException; |
| 84 | +import java.security.Security; |
58 | 85 | import java.security.interfaces.RSAPrivateKey; |
59 | 86 | import java.security.interfaces.RSAPublicKey; |
60 | 87 | import java.text.SimpleDateFormat; |
61 | 88 | import java.time.Clock; |
62 | 89 | import java.time.Instant; |
63 | 90 | import java.time.temporal.ChronoUnit; |
64 | | -import java.util.*; |
| 91 | +import java.util.ArrayList; |
| 92 | +import java.util.Arrays; |
| 93 | +import java.util.Collections; |
| 94 | +import java.util.Date; |
| 95 | +import java.util.HashMap; |
| 96 | +import java.util.List; |
| 97 | +import java.util.Map; |
| 98 | +import java.util.Optional; |
| 99 | +import java.util.Set; |
| 100 | +import java.util.UUID; |
65 | 101 | import java.util.function.Consumer; |
66 | 102 | import java.util.function.UnaryOperator; |
67 | 103 | import java.util.stream.Collectors; |
@@ -142,6 +178,9 @@ public abstract class AbstractTest { |
142 | 178 | @Autowired |
143 | 179 | protected InvitationRepository invitationRepository; |
144 | 180 |
|
| 181 | + @Autowired |
| 182 | + protected UserRoleAuditRepository userRoleAuditRepository; |
| 183 | + |
145 | 184 | @Autowired |
146 | 185 | protected RemoteProvisionedGroupRepository remoteProvisionedGroupRepository; |
147 | 186 |
|
@@ -639,7 +678,7 @@ private void doSeed() { |
639 | 678 | institutionAdmin.setOrganizationGUID(ORGANISATION_GUID); |
640 | 679 |
|
641 | 680 | Organisation organisation = new Organisation( |
642 | | - CRM_ORGANIZATION_ID,"SURF","SURF" |
| 681 | + CRM_ORGANIZATION_ID, "SURF", "SURF" |
643 | 682 | ); |
644 | 683 | doSave(organisationRepository, organisation); |
645 | 684 |
|
@@ -774,6 +813,26 @@ private void doSeed() { |
774 | 813 | doSave(apiTokenRepository, apiToken, superUserApiToken, legacyApiToken, userApiToken); |
775 | 814 | } |
776 | 815 |
|
| 816 | + protected void seedUserRoleAudits(Instant createdAt) { |
| 817 | + this.userRoleAuditRepository.deleteAllInBatch(); |
| 818 | + Role network = this.roleRepository.findByName("Network").get(); |
| 819 | + Role research = this.roleRepository.findByName("Research").get(); |
| 820 | + Role mail = this.roleRepository.findByName("Mail").get(); |
| 821 | + |
| 822 | + //paul.doe@example.com |
| 823 | + User inviter = this.userRepository.findBySubIgnoreCase(INVITER_SUB).get(); |
| 824 | + //ann.doe@example.com |
| 825 | + User guest = this.userRepository.findBySubIgnoreCase(GUEST_SUB).get(); |
| 826 | + Instant now = Instant.now(); |
| 827 | + UserRoleAudit auditNetworkInviter = new UserRoleAudit(network, inviter, now); |
| 828 | + UserRoleAudit auditResearchInviter = new UserRoleAudit(research, inviter, now); |
| 829 | + UserRoleAudit auditResearchGuest = new UserRoleAudit(research, guest, now); |
| 830 | + UserRoleAudit auditMailGuest = new UserRoleAudit(mail, guest, now); |
| 831 | + |
| 832 | + doSave(userRoleAuditRepository, auditNetworkInviter, auditResearchInviter, auditResearchGuest, auditMailGuest); |
| 833 | + } |
| 834 | + |
| 835 | + |
777 | 836 | @SafeVarargs |
778 | 837 | protected final <M> void doSave(JpaRepository<M, Long> repository, M... entities) { |
779 | 838 | repository.saveAll(Arrays.asList(entities)); |
|
0 commit comments