Skip to content

Commit f4f805e

Browse files
Merge pull request #183 from InseeFr/devUnknownModeSpecFolderFix
Fix crash en cas de nom de dossier incorrect dans specs
2 parents c7fecc0 + d325142 commit f4f805e

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

src/main/java/fr/insee/genesis/configuration/LogRequestFilter.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,11 @@ public class LogRequestFilter extends OncePerRequestFilter {
2626
"CALL {} {} - "
2727
// + "Content-Type : {} \n "
2828
// + "Headers : {} \n "
29-
+ "Params : {} - "
30-
+ "Body : {} \n ";
29+
+ "Params : {}";
3130

3231
private static final String RESPONSE_MESSAGE_FORMAT =
3332
"END {} {} - "
34-
+ "Status : {} - "
35-
// + "Content-Type : {} \n "
36-
// + "Headers : {} \n "
37-
+ "Body : {} \n";
33+
+ "Status : {} - ";
3834

3935
@Override
4036
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
@@ -45,21 +41,19 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
4541
ContentCachingResponseWrapper resp = new ContentCachingResponseWrapper(response);
4642

4743
log.info(REQUEST_MESSAGE_FORMAT,
48-
req.getMethod(), req.getRequestURI(),
44+
req.getMethod(), req.getRequestURI(),
4945
// req.getContentType(),
5046
// new ServletServerHttpRequest(req).getHeaders(), //Headers
51-
request.getQueryString(),//Params
52-
new String(req.getContentAsByteArray(), StandardCharsets.UTF_8));//Body
47+
request.getQueryString());//Params
5348

5449

5550
// Execution request chain
5651
filterChain.doFilter(req, resp);
5752

5853

5954
log.info(RESPONSE_MESSAGE_FORMAT,
60-
req.getMethod(), req.getRequestURI(),
61-
resp.getStatus(),
62-
getResponseBody(req, resp)); //Body
55+
req.getMethod(), req.getRequestURI(),
56+
resp.getStatus()); //Body
6357

6458
// Finally remember to respond to the client with the cached data.
6559
resp.copyBodyToResponse();

src/main/java/fr/insee/genesis/controller/utils/ControllerUtils.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.Collections;
55
import java.util.List;
66

7+
import lombok.extern.slf4j.Slf4j;
78
import org.springframework.beans.factory.annotation.Autowired;
89
import org.springframework.stereotype.Component;
910

@@ -12,6 +13,7 @@
1213
import fr.insee.genesis.infrastructure.utils.FileUtils;
1314

1415
@Component
16+
@Slf4j
1517
public class ControllerUtils {
1618

1719
private final FileUtils fileUtils;
@@ -30,11 +32,17 @@ public List<Mode> getModesList(String campaign, Mode modeSpecified) throws Genes
3032
}
3133
List<Mode> modes = new ArrayList<>();
3234
String specFolder = fileUtils.getSpecFolder(campaign);
33-
List<String> specFolders = fileUtils.listFolders(specFolder);
34-
if (specFolders.isEmpty()) {
35+
List<String> modeSpecFolders = fileUtils.listFolders(specFolder);
36+
if (modeSpecFolders.isEmpty()) {
3537
throw new GenesisException(404, "No specification folder found " + specFolder);
3638
}
37-
specFolders.forEach(modeLabel -> modes.add(Mode.getEnumFromModeName(modeLabel)));
39+
for(String modeSpecFolder : modeSpecFolders){
40+
if(Mode.getEnumFromModeName(modeSpecFolder) == null) {
41+
log.warn("There is an invalid mode folder name in spec folder : {}", modeSpecFolder);
42+
continue;
43+
}
44+
modes.add(Mode.getEnumFromModeName(modeSpecFolder));
45+
}
3846
if (modes.contains(Mode.F2F) && modes.contains(Mode.TEL)) {
3947
throw new GenesisException(409, "Cannot treat simultaneously TEL and FAF modes");
4048
}

0 commit comments

Comments
 (0)