diff --git a/spring-thymeleaf/pom.xml b/spring-thymeleaf/pom.xml
index 35d8c37176..f9493a9992 100644
--- a/spring-thymeleaf/pom.xml
+++ b/spring-thymeleaf/pom.xml
@@ -1,189 +1,189 @@
- 4.0.0
- com.baeldung
- spring-thymeleaf
- 0.1-SNAPSHOT
- war
-
- 1.7
-
- 4.3.3.RELEASE
- 3.0.1
-
- 1.7.12
- 1.1.3
-
- 2.1.4.RELEASE
-
- 1.1.0.Final
- 5.1.2.Final
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ com.baeldung
+ spring-thymeleaf
+ 0.1-SNAPSHOT
+ war
+
+ 1.7
+
+ 4.3.3.RELEASE
+ 3.0.1
+
+ 1.7.12
+ 1.1.3
+
+ 2.1.4.RELEASE
+
+ 1.1.0.Final
+ 5.1.2.Final
-
- 3.5.1
- 2.6
- 2.19.1
- 1.4.18
-
+
+ 3.5.1
+ 2.6
+ 2.19.1
+ 1.4.18
+
-
-
-
- org.springframework
- spring-context
- ${org.springframework-version}
-
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.springframework
- spring-webmvc
- ${org.springframework-version}
-
-
-
- org.springframework.security
- spring-security-web
- 4.1.3.RELEASE
-
-
- org.springframework.security
- spring-security-config
- 4.1.3.RELEASE
-
-
-
- org.thymeleaf
- thymeleaf
- ${org.thymeleaf-version}
-
-
- org.thymeleaf
- thymeleaf-spring4
- ${org.thymeleaf-version}
-
-
-
-
- org.slf4j
- slf4j-api
- ${org.slf4j.version}
-
-
- ch.qos.logback
- logback-classic
- ${logback.version}
-
-
-
- org.slf4j
- jcl-over-slf4j
- ${org.slf4j.version}
-
-
-
- org.slf4j
- log4j-over-slf4j
- ${org.slf4j.version}
-
-
-
- javax.servlet
- javax.servlet-api
- ${javax.servlet-version}
- provided
-
-
-
- javax.validation
- validation-api
- ${javax.validation-version}
-
-
- org.hibernate
- hibernate-validator
- ${org.hibernate-version}
-
-
+
+
+
+ org.springframework
+ spring-context
+ ${org.springframework-version}
+
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.springframework
+ spring-webmvc
+ ${org.springframework-version}
+
+
+
+ org.springframework.security
+ spring-security-web
+ 4.1.3.RELEASE
+
+
+ org.springframework.security
+ spring-security-config
+ 4.1.3.RELEASE
+
+
+
+ org.thymeleaf
+ thymeleaf
+ ${org.thymeleaf-version}
+
+
+ org.thymeleaf
+ thymeleaf-spring4
+ ${org.thymeleaf-version}
+
+
+
+
+ org.slf4j
+ slf4j-api
+ ${org.slf4j.version}
+
+
+ ch.qos.logback
+ logback-classic
+ ${logback.version}
+
+
+
+ org.slf4j
+ jcl-over-slf4j
+ ${org.slf4j.version}
+
+
+
+ org.slf4j
+ log4j-over-slf4j
+ ${org.slf4j.version}
+
+
+
+ javax.servlet
+ javax.servlet-api
+ ${javax.servlet-version}
+ provided
+
+
+
+ javax.validation
+ validation-api
+ ${javax.validation-version}
+
+
+ org.hibernate
+ hibernate-validator
+ ${org.hibernate-version}
+
+
-
- org.springframework
- spring-test
- 4.1.3.RELEASE
- test
-
+
+ org.springframework
+ spring-test
+ 4.1.3.RELEASE
+ test
+
-
-
- org.springframework.security
- spring-security-test
- 4.1.3.RELEASE
- test
-
+
+
+ org.springframework.security
+ spring-security-test
+ 4.1.3.RELEASE
+ test
+
-
-
- junit
- junit
- 4.12
- test
-
+
+
+ junit
+ junit
+ 4.12
+ test
+
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${maven-compiler-plugin.version}
-
- ${java-version}
- ${java-version}
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
- ${maven-war-plugin.version}
-
- false
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
-
-
-
-
-
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
- ${cargo-maven2-plugin.version}
-
- true
-
- jetty8x
- embedded
-
-
-
-
-
- 8082
-
-
-
-
-
-
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+ ${java-version}
+ ${java-version}
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven-war-plugin.version}
+
+ false
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
+
+
+
+
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+ ${cargo-maven2-plugin.version}
+
+ true
+
+ jetty8x
+ embedded
+
+
+
+
+
+ 8082
+
+
+
+
+
+
diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebApp.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebApp.java
index c7d5e33cb8..3104f45ab5 100644
--- a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebApp.java
+++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebApp.java
@@ -9,28 +9,28 @@ import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatche
*/
public class WebApp extends AbstractAnnotationConfigDispatcherServletInitializer {
- public WebApp() {
- super();
- }
+ public WebApp() {
+ super();
+ }
- @Override
- protected Class>[] getRootConfigClasses() {
- return null;
- }
+ @Override
+ protected Class>[] getRootConfigClasses() {
+ return null;
+ }
- @Override
- protected Class>[] getServletConfigClasses() {
- return new Class>[] { WebMVCConfig.class, WebMVCSecurity.class, InitSecurity.class };
- }
+ @Override
+ protected Class>[] getServletConfigClasses() {
+ return new Class>[] { WebMVCConfig.class, WebMVCSecurity.class, InitSecurity.class };
+ }
- @Override
- protected String[] getServletMappings() {
- return new String[] { "/" };
- }
+ @Override
+ protected String[] getServletMappings() {
+ return new String[] { "/" };
+ }
- @Override
- protected void customizeRegistration(final Dynamic registration) {
- super.customizeRegistration(registration);
- }
+ @Override
+ protected void customizeRegistration(final Dynamic registration) {
+ super.customizeRegistration(registration);
+ }
}
diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCConfig.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCConfig.java
index 50c9cf06fe..cdea671c84 100644
--- a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCConfig.java
+++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCConfig.java
@@ -24,51 +24,51 @@ import com.baeldung.thymeleaf.formatter.NameFormatter;
*/
public class WebMVCConfig extends WebMvcConfigurerAdapter {
- @Bean
- @Description("Thymeleaf Template Resolver")
- public ServletContextTemplateResolver templateResolver() {
- ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
- templateResolver.setPrefix("/WEB-INF/views/");
- templateResolver.setSuffix(".html");
- templateResolver.setTemplateMode("HTML5");
+ @Bean
+ @Description("Thymeleaf Template Resolver")
+ public ServletContextTemplateResolver templateResolver() {
+ ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
+ templateResolver.setPrefix("/WEB-INF/views/");
+ templateResolver.setSuffix(".html");
+ templateResolver.setTemplateMode("HTML5");
- return templateResolver;
- }
+ return templateResolver;
+ }
- @Bean
- @Description("Thymeleaf Template Engine")
- public SpringTemplateEngine templateEngine() {
- SpringTemplateEngine templateEngine = new SpringTemplateEngine();
- templateEngine.setTemplateResolver(templateResolver());
+ @Bean
+ @Description("Thymeleaf Template Engine")
+ public SpringTemplateEngine templateEngine() {
+ SpringTemplateEngine templateEngine = new SpringTemplateEngine();
+ templateEngine.setTemplateResolver(templateResolver());
- return templateEngine;
- }
+ return templateEngine;
+ }
- @Bean
- @Description("Thymeleaf View Resolver")
- public ThymeleafViewResolver viewResolver() {
- ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
- viewResolver.setTemplateEngine(templateEngine());
- viewResolver.setOrder(1);
- return viewResolver;
- }
+ @Bean
+ @Description("Thymeleaf View Resolver")
+ public ThymeleafViewResolver viewResolver() {
+ ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
+ viewResolver.setTemplateEngine(templateEngine());
+ viewResolver.setOrder(1);
+ return viewResolver;
+ }
- @Bean
- @Description("Spring Message Resolver")
- public ResourceBundleMessageSource messageSource() {
- ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
- messageSource.setBasename("messages");
- return messageSource;
- }
+ @Bean
+ @Description("Spring Message Resolver")
+ public ResourceBundleMessageSource messageSource() {
+ ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
+ messageSource.setBasename("messages");
+ return messageSource;
+ }
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/");
- }
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/");
+ }
- @Override
- @Description("Custom Conversion Service")
- public void addFormatters(FormatterRegistry registry) {
- registry.addFormatter(new NameFormatter());
- }
+ @Override
+ @Description("Custom Conversion Service")
+ public void addFormatters(FormatterRegistry registry) {
+ registry.addFormatter(new NameFormatter());
+ }
}
diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCSecurity.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCSecurity.java
index 00c42831de..46bff38a3f 100644
--- a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCSecurity.java
+++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/config/WebMVCSecurity.java
@@ -14,7 +14,7 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class WebMVCSecurity extends WebSecurityConfigurerAdapter {
-
+
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
@@ -37,13 +37,7 @@ public class WebMVCSecurity extends WebSecurityConfigurerAdapter {
@Override
protected void configure(final HttpSecurity http) throws Exception {
- http
- .authorizeRequests()
- .anyRequest()
- .authenticated()
- .and()
- .httpBasic()
- ;
+ http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
}
}
diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/controller/StudentController.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/controller/StudentController.java
index 912eb521f4..da34b2d7b0 100644
--- a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/controller/StudentController.java
+++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/controller/StudentController.java
@@ -20,50 +20,50 @@ import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class StudentController {
- @RequestMapping(value = "/saveStudent", method = RequestMethod.POST)
- public String saveStudent(@Valid @ModelAttribute Student student, BindingResult errors, Model model) {
- if (!errors.hasErrors()) {
- // get mock objects
- List students = buildStudents();
- // add current student
- students.add(student);
- model.addAttribute("students", students);
- }
- return ((errors.hasErrors()) ? "addStudent" : "listStudents");
- }
+ @RequestMapping(value = "/saveStudent", method = RequestMethod.POST)
+ public String saveStudent(@Valid @ModelAttribute Student student, BindingResult errors, Model model) {
+ if (!errors.hasErrors()) {
+ // get mock objects
+ List students = buildStudents();
+ // add current student
+ students.add(student);
+ model.addAttribute("students", students);
+ }
+ return ((errors.hasErrors()) ? "addStudent" : "listStudents");
+ }
- @RequestMapping(value = "/addStudent", method = RequestMethod.GET)
- public String addStudent(Model model) {
- model.addAttribute("student", new Student());
- return "addStudent";
- }
+ @RequestMapping(value = "/addStudent", method = RequestMethod.GET)
+ public String addStudent(Model model) {
+ model.addAttribute("student", new Student());
+ return "addStudent";
+ }
- @RequestMapping(value = "/listStudents", method = RequestMethod.GET)
- public String listStudent(Model model) {
+ @RequestMapping(value = "/listStudents", method = RequestMethod.GET)
+ public String listStudent(Model model) {
- model.addAttribute("students", buildStudents());
+ model.addAttribute("students", buildStudents());
- return "listStudents";
- }
+ return "listStudents";
+ }
- private List buildStudents() {
- List students = new ArrayList();
+ private List buildStudents() {
+ List students = new ArrayList();
- Student student1 = new Student();
- student1.setId(1001);
- student1.setName("John Smith");
- student1.setGender('M');
- student1.setPercentage(Float.valueOf("80.45"));
+ Student student1 = new Student();
+ student1.setId(1001);
+ student1.setName("John Smith");
+ student1.setGender('M');
+ student1.setPercentage(Float.valueOf("80.45"));
- students.add(student1);
+ students.add(student1);
- Student student2 = new Student();
- student2.setId(1002);
- student2.setName("Jane Williams");
- student2.setGender('F');
- student2.setPercentage(Float.valueOf("60.25"));
+ Student student2 = new Student();
+ student2.setId(1002);
+ student2.setName("Jane Williams");
+ student2.setGender('F');
+ student2.setPercentage(Float.valueOf("60.25"));
- students.add(student2);
- return students;
- }
+ students.add(student2);
+ return students;
+ }
}
diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/model/Student.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/model/Student.java
index bce99f286c..202c04358a 100644
--- a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/model/Student.java
+++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/model/Student.java
@@ -12,49 +12,49 @@ import javax.validation.constraints.NotNull;
*/
public class Student implements Serializable {
- private static final long serialVersionUID = -8582553475226281591L;
+ private static final long serialVersionUID = -8582553475226281591L;
- @NotNull(message = "Student ID is required.")
- @Min(value = 1000, message = "Student ID must be at least 4 digits.")
- private Integer id;
+ @NotNull(message = "Student ID is required.")
+ @Min(value = 1000, message = "Student ID must be at least 4 digits.")
+ private Integer id;
- @NotNull(message = "Student name is required.")
- private String name;
+ @NotNull(message = "Student name is required.")
+ private String name;
- @NotNull(message = "Student gender is required.")
- private Character gender;
+ @NotNull(message = "Student gender is required.")
+ private Character gender;
- private Float percentage;
+ private Float percentage;
- public Integer getId() {
- return id;
- }
+ public Integer getId() {
+ return id;
+ }
- public void setId(Integer id) {
- this.id = id;
- }
+ public void setId(Integer id) {
+ this.id = id;
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public Character getGender() {
- return gender;
- }
+ public Character getGender() {
+ return gender;
+ }
- public void setGender(Character gender) {
- this.gender = gender;
- }
+ public void setGender(Character gender) {
+ this.gender = gender;
+ }
- public Float getPercentage() {
- return percentage;
- }
+ public Float getPercentage() {
+ return percentage;
+ }
- public void setPercentage(Float percentage) {
- this.percentage = percentage;
- }
+ public void setPercentage(Float percentage) {
+ this.percentage = percentage;
+ }
}
diff --git a/spring-thymeleaf/src/test/java/org/baeldung/security/csrf/CsrfEnabledIntegrationTest.java b/spring-thymeleaf/src/test/java/org/baeldung/security/csrf/CsrfEnabledIntegrationTest.java
index bd70881dd8..46a28c3c74 100644
--- a/spring-thymeleaf/src/test/java/org/baeldung/security/csrf/CsrfEnabledIntegrationTest.java
+++ b/spring-thymeleaf/src/test/java/org/baeldung/security/csrf/CsrfEnabledIntegrationTest.java
@@ -30,17 +30,17 @@ import com.baeldung.thymeleaf.config.WebMVCSecurity;
@WebAppConfiguration
@ContextConfiguration(classes = { WebApp.class, WebMVCConfig.class, WebMVCSecurity.class, InitSecurity.class })
public class CsrfEnabledIntegrationTest {
-
- @Autowired
+
+ @Autowired
WebApplicationContext wac;
@Autowired
MockHttpSession session;
private MockMvc mockMvc;
-
+
@Autowired
private Filter springSecurityFilterChain;
-
+
protected RequestPostProcessor testUser() {
return user("user1").password("user1Pass").roles("USER");
}
@@ -52,12 +52,12 @@ public class CsrfEnabledIntegrationTest {
@Test
public void addStudentWithoutCSRF() throws Exception {
- mockMvc.perform(post("/saveStudent").contentType(MediaType.APPLICATION_JSON).param("id", "1234567").param("name", "Joe").param("gender", "M").with(testUser())).andExpect(status().isForbidden());
+ mockMvc.perform(post("/saveStudent").contentType(MediaType.APPLICATION_JSON).param("id", "1234567").param("name", "Joe").param("gender", "M").with(testUser())).andExpect(status().isForbidden());
}
@Test
public void addStudentWithCSRF() throws Exception {
- mockMvc.perform(post("/saveStudent").contentType(MediaType.APPLICATION_JSON).param("id", "1234567").param("name", "Joe").param("gender", "M").with(testUser()).with(csrf())).andExpect(status().isOk());
+ mockMvc.perform(post("/saveStudent").contentType(MediaType.APPLICATION_JSON).param("id", "1234567").param("name", "Joe").param("gender", "M").with(testUser()).with(csrf())).andExpect(status().isOk());
}
}