merging
This commit is contained in:
@ -6,7 +6,6 @@
|
||||
package org.owasp.webgoat.service;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.owasp.webgoat.i18n.LabelManager;
|
||||
import org.owasp.webgoat.lessons.AbstractLesson;
|
||||
import org.owasp.webgoat.lessons.Assignment;
|
||||
import org.owasp.webgoat.lessons.Hint;
|
||||
|
@ -30,7 +30,7 @@ package org.owasp.webgoat.service;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.owasp.webgoat.i18n.LabelProvider;
|
||||
import org.owasp.webgoat.i18n.Messages;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@ -39,10 +39,12 @@ import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.LocaleResolver;
|
||||
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
|
||||
/**
|
||||
@ -50,19 +52,23 @@ import java.util.Map;
|
||||
*
|
||||
* @author zupzup
|
||||
*/
|
||||
|
||||
@RestController
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class LabelService {
|
||||
|
||||
public static final String URL_LABELS_MVC = "/service/labels.mvc";
|
||||
private final LabelProvider labelProvider;
|
||||
private LocaleResolver localeResolver;
|
||||
private Messages messages;
|
||||
|
||||
/**
|
||||
* Fetches labels for given language
|
||||
* If no language is provided, the language is determined from the request headers
|
||||
* Otherwise, fall back to default language
|
||||
* We use Springs session locale resolver which also gives us the option to change the local later on. For
|
||||
* now it uses the accept-language from the HttpRequest. If this language is not found it will default back
|
||||
* to messages.properties.
|
||||
*
|
||||
* Note although it is possible to use Spring language interceptor we for now opt for this solution, the UI
|
||||
* will always need to fetch the labels with the new language set by the user. So we don't need to intercept each
|
||||
* and every request to see if the language param has been set in the request.
|
||||
*
|
||||
* @param lang the language to fetch labels for (optional)
|
||||
* @return a map of labels
|
||||
@ -70,18 +76,12 @@ public class LabelService {
|
||||
*/
|
||||
@GetMapping(path = URL_LABELS_MVC, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public ResponseEntity<Map<String, String>> fetchLabels(@RequestParam(value = "lang", required = false) String lang, HttpServletRequest request) {
|
||||
Locale locale;
|
||||
if (StringUtils.isEmpty(lang)) {
|
||||
log.debug("No language provided, determining from request headers");
|
||||
locale = request.getLocale();
|
||||
if (locale != null) {
|
||||
log.debug("Locale set to {}", locale);
|
||||
}
|
||||
} else {
|
||||
locale = Locale.forLanguageTag(lang);
|
||||
public ResponseEntity<Properties> fetchLabels(@RequestParam(value = "lang", required = false) String lang, HttpServletRequest request) {
|
||||
if (!StringUtils.isEmpty(lang)) {
|
||||
Locale locale = Locale.forLanguageTag(lang);
|
||||
((SessionLocaleResolver)localeResolver).setDefaultLocale(locale);
|
||||
log.debug("Language provided: {} leads to Locale: {}", lang, locale);
|
||||
}
|
||||
return new ResponseEntity<>(labelProvider.getLabels(locale), HttpStatus.OK);
|
||||
return new ResponseEntity<>(messages.getMessages(), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,9 @@
|
||||
package org.owasp.webgoat.service;
|
||||
|
||||
import org.owasp.webgoat.i18n.LabelManager;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.owasp.webgoat.lessons.AbstractLesson;
|
||||
import org.owasp.webgoat.lessons.LessonInfoModel;
|
||||
import org.owasp.webgoat.session.WebSession;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -17,15 +16,10 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
* @version $Id: $Id
|
||||
*/
|
||||
@RestController
|
||||
@AllArgsConstructor
|
||||
public class LessonInfoService {
|
||||
|
||||
private final WebSession webSession;
|
||||
private final LabelManager labelManager;
|
||||
|
||||
public LessonInfoService(WebSession webSession, LabelManager labelManager) {
|
||||
this.webSession = webSession;
|
||||
this.labelManager = labelManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>getLessonInfo.</p>
|
||||
@ -36,7 +30,7 @@ public class LessonInfoService {
|
||||
public @ResponseBody
|
||||
LessonInfoModel getLessonInfo() {
|
||||
AbstractLesson lesson = webSession.getCurrentLesson();
|
||||
return new LessonInfoModel(labelManager.get(lesson.getTitle()), false, false, false);
|
||||
return new LessonInfoModel(lesson.getTitle(), false, false, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4,7 +4,6 @@ import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.owasp.webgoat.i18n.LabelManager;
|
||||
import org.owasp.webgoat.lessons.AbstractLesson;
|
||||
import org.owasp.webgoat.lessons.Assignment;
|
||||
import org.owasp.webgoat.lessons.LessonInfoModel;
|
||||
@ -29,7 +28,6 @@ import java.util.Map;
|
||||
@AllArgsConstructor
|
||||
public class LessonProgressService {
|
||||
|
||||
private LabelManager labelManager;
|
||||
private UserTracker userTracker;
|
||||
private WebSession webSession;
|
||||
|
||||
@ -47,7 +45,7 @@ public class LessonProgressService {
|
||||
boolean lessonCompleted = false;
|
||||
if (lessonTracker != null) {
|
||||
lessonCompleted = lessonTracker.isLessonSolved();
|
||||
successMessage = labelManager.get("LessonCompleted");
|
||||
successMessage = "LessonCompleted"; //@todo we still use this??
|
||||
}
|
||||
json.put("lessonCompleted", lessonCompleted);
|
||||
json.put("successMessage", successMessage);
|
||||
|
Reference in New Issue
Block a user