Skip to content

Commit e4859f9

Browse files
committed
fix: fixes after merge
1 parent 7541fc4 commit e4859f9

File tree

3 files changed

+21
-37
lines changed

3 files changed

+21
-37
lines changed

src/main/java/fr/insee/genesis/configuration/auth/security/ApplicationRole.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public enum ApplicationRole {
77
COLLECT_PLATFORM,
88
SCHEDULER,
99
READER,
10-
USER_BACK_OFFICE
10+
USER_BACK_OFFICE,
1111
USER_BATCH_GENERIC
1212
}
1313

src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import fr.insee.bpm.metadata.reader.lunatic.LunaticReader;
77
import fr.insee.genesis.Constants;
88
import fr.insee.genesis.controller.adapter.LunaticXmlAdapter;
9-
import fr.insee.genesis.domain.model.surveyunit.InterrogationId;
109
import fr.insee.genesis.controller.dto.SurveyUnitDto;
1110
import fr.insee.genesis.controller.dto.SurveyUnitInputDto;
1211
import fr.insee.genesis.controller.dto.SurveyUnitQualityToolDto;
@@ -21,6 +20,7 @@
2120
import fr.insee.genesis.controller.utils.ControllerUtils;
2221
import fr.insee.genesis.controller.utils.DataTransformer;
2322
import fr.insee.genesis.domain.model.context.DataProcessingContextModel;
23+
import fr.insee.genesis.domain.model.surveyunit.InterrogationId;
2424
import fr.insee.genesis.domain.model.surveyunit.Mode;
2525
import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel;
2626
import fr.insee.genesis.domain.model.surveyunit.VariableModel;
@@ -57,11 +57,9 @@
5757
import java.nio.file.Files;
5858
import java.nio.file.Path;
5959
import java.nio.file.Paths;
60-
import java.time.LocalDateTime;
6160
import java.util.ArrayList;
6261
import java.util.List;
6362
import java.util.Set;
64-
import java.util.stream.Stream;
6563

6664
@RequestMapping(path = "/responses" )
6765
@Controller

src/test/java/fr/insee/genesis/controller/rest/ControllerAccessTest.java

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
import fr.insee.genesis.infrastructure.repository.RundeckExecutionDBRepository;
1212
import fr.insee.genesis.infrastructure.repository.SurveyUnitMongoDBRepository;
1313
import fr.insee.genesis.infrastructure.repository.VariableTypeMongoDBRepository;
14+
import org.junit.jupiter.api.Assertions;
1415
import org.junit.jupiter.api.DisplayName;
1516
import org.junit.jupiter.api.Test;
1617
import org.junit.jupiter.params.ParameterizedTest;
1718
import org.junit.jupiter.params.provider.Arguments;
1819
import org.junit.jupiter.params.provider.MethodSource;
1920
import org.springframework.beans.factory.annotation.Autowired;
21+
import org.springframework.beans.factory.annotation.Value;
2022
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2123
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
2224
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
@@ -31,8 +33,6 @@
3133
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
3234

3335
import java.util.HashMap;
34-
import java.util.List;
35-
import java.util.Map;
3636
import java.util.stream.Stream;
3737

3838
import static org.hamcrest.Matchers.oneOf;
@@ -56,11 +56,6 @@
5656
class ControllerAccessTest {
5757

5858
// Constants for user roles
59-
private static final String USER_KRAFTWERK = "USER_KRAFTWERK";
60-
private static final String USER_PLATINE = "USER_PLATINE";
61-
private static final String USER_BACK_OFFICE = "USER_BACK_OFFICE";
62-
private static final String ADMIN = "ADMIN";
63-
private static final String READER = "READER";
6459
// JWT claim properties loaded from application properties
6560
@Value("${fr.insee.genesis.security.token.oidc-claim-role}")
6661
private String claimRoleDotRoles;
@@ -116,10 +111,6 @@ private static Stream<Arguments> endpointsReader() {
116111

117112
private static Stream<Arguments> responseEndpoint() {
118113
return Stream.of(
119-
Arguments.of(GET,"/response/lunatic-json/get/unprocessed"),
120-
Arguments.of(GET,"/response/lunatic-json/get/by-interrogation-mode-and-campaign"),
121-
Arguments.of(POST,"/response/lunatic-json/process"),
122-
Arguments.of(GET,"/response/lunatic-json/campaignId=TOTO"),
123114
Arguments.of(GET,"/responses/raw/lunatic-json/get/unprocessed"),
124115
Arguments.of(GET,"/responses/raw/lunatic-json/get/by-interrogation-mode-and-campaign?interrogationId=test&campaignName=test&mode=WEB"),
125116
Arguments.of(GET,"/responses/raw/lunatic-json/campaignId=TOTO"),
@@ -185,23 +176,19 @@ void platine_users_should_access_reader_allowed_services(String endpointURI) thr
185176
@MethodSource("backOfficeEndpointProd")
186177
@DisplayName("Back office users should access prod services")
187178
void back_office_users_should_access_prod_services(HttpMethod method, String endpointURI) throws Exception {
188-
Jwt jwt = generateJwt(List.of("utilisateur_Back_Office"), USER_BACK_OFFICE);
189-
when(jwtDecoder.decode(anyString())).thenReturn(jwt);
190-
MockHttpServletRequestBuilder requestBuilder;
191-
if (method == HttpMethod.GET) {
192-
requestBuilder = get(endpointURI);
193-
} else if (method == HttpMethod.POST) {
194-
requestBuilder = post(endpointURI);
195-
} else if (method == PUT) {
196-
requestBuilder = put(endpointURI);
197-
} else if (method == HttpMethod.DELETE) {
198-
requestBuilder = delete(endpointURI);
199-
} else {
200-
throw new IllegalArgumentException("Unsupported HTTP method: " + method);
179+
switch (method.name()){
180+
case "PUT" -> mockMvc.perform(
181+
put(endpointURI).with(
182+
jwt().authorities(new SimpleGrantedAuthority("ROLE_USER_BACK_OFFICE")))
183+
)
184+
.andExpect(status().is(oneOf(200,400,404)));
185+
case "POST" -> mockMvc.perform(
186+
post(endpointURI).with(
187+
jwt().authorities(new SimpleGrantedAuthority("ROLE_USER_BACK_OFFICE")))
188+
)
189+
.andExpect(status().is(oneOf(200,400,404)));
190+
default -> Assertions.fail("Method %s not supported".formatted(method.name()));
201191
}
202-
203-
mockMvc.perform(requestBuilder.header("Authorization", "bearer token_blabla"))
204-
.andExpect(status().is(oneOf(200, 400, 404)));
205192
}
206193

207194
/**
@@ -211,10 +198,11 @@ void back_office_users_should_access_prod_services(HttpMethod method, String end
211198
@MethodSource("endpointsReader")
212199
@DisplayName("Back office users should access reader-allowed services")
213200
void back_office_users_should_access_reader_allowed_services(String endpointURI) throws Exception {
214-
Jwt jwt = generateJwt(List.of("utilisateur_Back_Office"), USER_BACK_OFFICE);
215-
when(jwtDecoder.decode(anyString())).thenReturn(jwt);
216-
mockMvc.perform(get(endpointURI).header("Authorization", "bearer token_blabla"))
217-
.andExpect(status().is(oneOf(200, 404)));
201+
mockMvc.perform(
202+
get(endpointURI).with(
203+
jwt().authorities(new SimpleGrantedAuthority("ROLE_USER_BACK_OFFICE")))
204+
)
205+
.andExpect(status().is(oneOf(200,400,404)));
218206
}
219207

220208
/**
@@ -336,6 +324,4 @@ void invalid_roles_should_access_schedules_services() throws Exception {
336324
jwt().authorities(new SimpleGrantedAuthority("ROLE_invalid"))))
337325
.andExpect(status().isForbidden());
338326
}
339-
340-
341327
}

0 commit comments

Comments
 (0)