Commit 5e965ce484f4938dd6cd483c2c0095d34c22122f
1 parent
aa193b2b
working version
Showing
9 changed files
with
64 additions
and
34 deletions
Show diff stats
pom.xml
@@ -84,7 +84,7 @@ | @@ -84,7 +84,7 @@ | ||
84 | <version>${logback.version}</version> | 84 | <version>${logback.version}</version> |
85 | </dependency> | 85 | </dependency> |
86 | 86 | ||
87 | - <dependency> | 87 | + <!--dependency> |
88 | <groupId>org.slf4j</groupId> | 88 | <groupId>org.slf4j</groupId> |
89 | <artifactId>log4j-over-slf4j</artifactId> | 89 | <artifactId>log4j-over-slf4j</artifactId> |
90 | <version>${slf4j.version}</version> | 90 | <version>${slf4j.version}</version> |
@@ -100,7 +100,7 @@ | @@ -100,7 +100,7 @@ | ||
100 | <groupId>org.slf4j</groupId> | 100 | <groupId>org.slf4j</groupId> |
101 | <artifactId>jul-to-slf4j</artifactId> | 101 | <artifactId>jul-to-slf4j</artifactId> |
102 | <version>${slf4j.version}</version> | 102 | <version>${slf4j.version}</version> |
103 | - </dependency> | 103 | + </dependency--> |
104 | 104 | ||
105 | </dependencies> | 105 | </dependencies> |
106 | 106 | ||
@@ -128,7 +128,7 @@ | @@ -128,7 +128,7 @@ | ||
128 | 128 | ||
129 | <properties> | 129 | <properties> |
130 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 130 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
131 | - <spring.version>3.2.5.RELEASE</spring.version> | 131 | + <spring.version>4.0.0.RELEASE</spring.version> |
132 | <slf4j.version>1.7.5</slf4j.version> | 132 | <slf4j.version>1.7.5</slf4j.version> |
133 | <junit.version>4.10</junit.version> | 133 | <junit.version>4.10</junit.version> |
134 | <logback.version>1.0.13</logback.version> | 134 | <logback.version>1.0.13</logback.version> |
src/main/java/fr/plil/sio/web/mvc/CheckUserInterceptor.java
1 | package fr.plil.sio.web.mvc; | 1 | package fr.plil.sio.web.mvc; |
2 | 2 | ||
3 | -import java.io.IOException;import javax.annotation.Resource; | ||
4 | -; | 3 | +import java.io.IOException; |
4 | +import javax.annotation.Resource; | ||
5 | import javax.servlet.http.HttpServletRequest; | 5 | import javax.servlet.http.HttpServletRequest; |
6 | import javax.servlet.http.HttpServletResponse; | 6 | import javax.servlet.http.HttpServletResponse; |
7 | import org.slf4j.Logger; | 7 | import org.slf4j.Logger; |
@@ -11,7 +11,7 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; | @@ -11,7 +11,7 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; | ||
11 | public class CheckUserInterceptor extends HandlerInterceptorAdapter { | 11 | public class CheckUserInterceptor extends HandlerInterceptorAdapter { |
12 | 12 | ||
13 | private static final Logger logger = LoggerFactory.getLogger(CheckUserInterceptor.class); | 13 | private static final Logger logger = LoggerFactory.getLogger(CheckUserInterceptor.class); |
14 | - | 14 | + |
15 | @Resource | 15 | @Resource |
16 | private UserSession userSession; | 16 | private UserSession userSession; |
17 | 17 | ||
@@ -19,20 +19,20 @@ public class CheckUserInterceptor extends HandlerInterceptorAdapter { | @@ -19,20 +19,20 @@ public class CheckUserInterceptor extends HandlerInterceptorAdapter { | ||
19 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, | 19 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, |
20 | Object handler) throws IOException { | 20 | Object handler) throws IOException { |
21 | 21 | ||
22 | - logger.debug("path info: " + request.getPathInfo()); | ||
23 | - | ||
24 | - if (request.getPathInfo().equals("/login")) { | ||
25 | - logger.debug("access granted as path is /login"); | 22 | + logger.debug("servlet path: " + request.getServletPath()); |
23 | + | ||
24 | + if (request.getServletPath().equals("/login")) { | ||
25 | + logger.debug("access granted as path is /login"); | ||
26 | return true; | 26 | return true; |
27 | } | 27 | } |
28 | 28 | ||
29 | String username = userSession.getUsername(); | 29 | String username = userSession.getUsername(); |
30 | 30 | ||
31 | if (username != null) { | 31 | if (username != null) { |
32 | - logger.debug("authenticated"); | 32 | + logger.debug("authenticated"); |
33 | return true; | 33 | return true; |
34 | } else { | 34 | } else { |
35 | - logger.debug("not authenticated"); | 35 | + logger.debug("not authenticated"); |
36 | response.sendRedirect("login"); | 36 | response.sendRedirect("login"); |
37 | return false; | 37 | return false; |
38 | } | 38 | } |
src/main/java/fr/plil/sio/web/mvc/LoginController.java
@@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.RequestMethod; | @@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.RequestMethod; | ||
8 | import org.springframework.web.servlet.ModelAndView; | 8 | import org.springframework.web.servlet.ModelAndView; |
9 | 9 | ||
10 | @Controller | 10 | @Controller |
11 | +@RequestMapping(value = "/login") | ||
11 | public class LoginController { | 12 | public class LoginController { |
12 | 13 | ||
13 | @Resource | 14 | @Resource |
@@ -16,12 +17,12 @@ public class LoginController { | @@ -16,12 +17,12 @@ public class LoginController { | ||
16 | @Resource | 17 | @Resource |
17 | private UserSession userSession; | 18 | private UserSession userSession; |
18 | 19 | ||
19 | - @RequestMapping(value = "/login", method = RequestMethod.GET) | 20 | + @RequestMapping(method = RequestMethod.GET) |
20 | public ModelAndView getLoginForm() { | 21 | public ModelAndView getLoginForm() { |
21 | return new ModelAndView("login", "user", new User()); | 22 | return new ModelAndView("login", "user", new User()); |
22 | } | 23 | } |
23 | 24 | ||
24 | - @RequestMapping(value = "/login", method = RequestMethod.POST) | 25 | + @RequestMapping(method = RequestMethod.POST) |
25 | public String postLoginCheck(User user, BindingResult result) { | 26 | public String postLoginCheck(User user, BindingResult result) { |
26 | 27 | ||
27 | User userFromDao = userDao.getFromUsername(user.getUsername()); | 28 | User userFromDao = userDao.getFromUsername(user.getUsername()); |
src/main/java/fr/plil/sio/web/mvc/WebAppConfig.java
1 | package fr.plil.sio.web.mvc; | 1 | package fr.plil.sio.web.mvc; |
2 | 2 | ||
3 | +import org.slf4j.Logger; | ||
4 | +import org.slf4j.LoggerFactory; | ||
3 | import org.springframework.context.MessageSource; | 5 | import org.springframework.context.MessageSource; |
4 | import org.springframework.context.annotation.Bean; | 6 | import org.springframework.context.annotation.Bean; |
5 | import org.springframework.context.annotation.ComponentScan; | 7 | import org.springframework.context.annotation.ComponentScan; |
@@ -7,20 +9,23 @@ import org.springframework.context.annotation.Configuration; | @@ -7,20 +9,23 @@ import org.springframework.context.annotation.Configuration; | ||
7 | import org.springframework.context.annotation.Scope; | 9 | import org.springframework.context.annotation.Scope; |
8 | import org.springframework.context.annotation.ScopedProxyMode; | 10 | import org.springframework.context.annotation.ScopedProxyMode; |
9 | import org.springframework.context.support.ResourceBundleMessageSource; | 11 | import org.springframework.context.support.ResourceBundleMessageSource; |
12 | +import org.springframework.web.context.WebApplicationContext; | ||
10 | import org.springframework.web.servlet.ViewResolver; | 13 | import org.springframework.web.servlet.ViewResolver; |
11 | import org.springframework.web.servlet.config.annotation.EnableWebMvc; | 14 | import org.springframework.web.servlet.config.annotation.EnableWebMvc; |
12 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; | 15 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; |
13 | -import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; | 16 | +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; |
14 | import org.springframework.web.servlet.view.InternalResourceViewResolver; | 17 | import org.springframework.web.servlet.view.InternalResourceViewResolver; |
15 | -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; | 18 | +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; |
16 | 19 | ||
17 | -@EnableWebMvc | ||
18 | -@ComponentScan(basePackages = {"fr.plil.sio.web.mvc"}, scopedProxy = ScopedProxyMode.TARGET_CLASS) | ||
19 | @Configuration | 20 | @Configuration |
20 | -public class WebAppConfig extends WebMvcConfigurationSupport { | 21 | +@ComponentScan(basePackages = {"fr.plil.sio.web.mvc"},scopedProxy = ScopedProxyMode.TARGET_CLASS) |
22 | +@EnableWebMvc | ||
23 | +public class WebAppConfig extends WebMvcConfigurerAdapter { | ||
24 | + | ||
25 | + private static final Logger logger = LoggerFactory.getLogger(WebAppConfig.class); | ||
21 | 26 | ||
22 | @Bean | 27 | @Bean |
23 | - @Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS) | 28 | + @Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode. TARGET_CLASS) |
24 | public UserSession userSession() { | 29 | public UserSession userSession() { |
25 | return new UserSession(); | 30 | return new UserSession(); |
26 | } | 31 | } |
@@ -41,22 +46,38 @@ public class WebAppConfig extends WebMvcConfigurationSupport { | @@ -41,22 +46,38 @@ public class WebAppConfig extends WebMvcConfigurationSupport { | ||
41 | public MessageSource messageSource() { | 46 | public MessageSource messageSource() { |
42 | ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); | 47 | ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); |
43 | messageSource.setBasename("messages"); | 48 | messageSource.setBasename("messages"); |
49 | + messageSource.setDefaultEncoding("UTF-8"); | ||
44 | return messageSource; | 50 | return messageSource; |
45 | } | 51 | } |
46 | 52 | ||
47 | @Bean | 53 | @Bean |
48 | public ViewResolver viewResolver() { | 54 | public ViewResolver viewResolver() { |
49 | InternalResourceViewResolver resolver = new InternalResourceViewResolver(); | 55 | InternalResourceViewResolver resolver = new InternalResourceViewResolver(); |
50 | - resolver.setPrefix("/WEB-INF/jsp/"); | 56 | + resolver.setPrefix("/WEB-INF/views/"); |
51 | resolver.setSuffix(".jsp"); | 57 | resolver.setSuffix(".jsp"); |
52 | return resolver; | 58 | return resolver; |
53 | } | 59 | } |
54 | 60 | ||
55 | - @Bean | ||
56 | - public RequestMappingHandlerMapping requestMappingHandlerMapping() { | ||
57 | - RequestMappingHandlerMapping handlerMapping = super.requestMappingHandlerMapping(); | ||
58 | - handlerMapping.setUseSuffixPatternMatch(false); | ||
59 | - handlerMapping.setUseTrailingSlashMatch(false); | ||
60 | - return handlerMapping; | 61 | + @Override |
62 | + public void addResourceHandlers(ResourceHandlerRegistry registry) { | ||
63 | + registry.addResourceHandler("/resources/").addResourceLocations("/resources/**"); | ||
64 | + } | ||
65 | + | ||
66 | + /* | ||
67 | + @Override | ||
68 | + public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { | ||
69 | + configurer.enable(); | ||
61 | } | 70 | } |
71 | + */ | ||
72 | + | ||
73 | + | ||
74 | + /* | ||
75 | + @Bean | ||
76 | + public RequestMappingHandlerMapping requestMappingHandlerMapping() { | ||
77 | + RequestMappingHandlerMapping handlerMapping = super.requestMappingHandlerMapping(); | ||
78 | + handlerMapping.setUseSuffixPatternMatch(false); | ||
79 | + handlerMapping.setUseTrailingSlashMatch(false); | ||
80 | + return handlerMapping; | ||
81 | + } | ||
82 | + */ | ||
62 | } | 83 | } |
src/main/java/fr/plil/sio/web/mvc/WebAppInitializer.java
@@ -3,24 +3,31 @@ package fr.plil.sio.web.mvc; | @@ -3,24 +3,31 @@ package fr.plil.sio.web.mvc; | ||
3 | import javax.servlet.ServletContext; | 3 | import javax.servlet.ServletContext; |
4 | import javax.servlet.ServletException; | 4 | import javax.servlet.ServletException; |
5 | import javax.servlet.ServletRegistration; | 5 | import javax.servlet.ServletRegistration; |
6 | +import org.slf4j.Logger; | ||
7 | +import org.slf4j.LoggerFactory; | ||
6 | import org.springframework.web.WebApplicationInitializer; | 8 | import org.springframework.web.WebApplicationInitializer; |
7 | -import org.springframework.web.servlet.DispatcherServlet; | ||
8 | -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; | ||
9 | import org.springframework.web.context.ContextLoaderListener; | 9 | import org.springframework.web.context.ContextLoaderListener; |
10 | import org.springframework.web.context.WebApplicationContext; | 10 | import org.springframework.web.context.WebApplicationContext; |
11 | +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; | ||
12 | +import org.springframework.web.servlet.DispatcherServlet; | ||
11 | 13 | ||
12 | public class WebAppInitializer implements WebApplicationInitializer { | 14 | public class WebAppInitializer implements WebApplicationInitializer { |
13 | - | 15 | + |
16 | + private static final Logger logger = LoggerFactory.getLogger(WebAppInitializer.class); | ||
17 | + | ||
14 | @Override | 18 | @Override |
15 | public void onStartup(ServletContext servletContext) throws ServletException { | 19 | public void onStartup(ServletContext servletContext) throws ServletException { |
20 | + logger.info("starting web app initializer"); | ||
16 | WebApplicationContext context = getContext(); | 21 | WebApplicationContext context = getContext(); |
17 | servletContext.addListener(new ContextLoaderListener(context)); | 22 | servletContext.addListener(new ContextLoaderListener(context)); |
18 | - ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context)); | 23 | + ServletRegistration.Dynamic dispatcher = servletContext |
24 | + .addServlet("dispatcher", new DispatcherServlet(context)); | ||
19 | dispatcher.setLoadOnStartup(1); | 25 | dispatcher.setLoadOnStartup(1); |
20 | - dispatcher.addMapping("/*"); | 26 | + dispatcher.addMapping("/"); |
21 | } | 27 | } |
22 | - | 28 | + |
23 | private AnnotationConfigWebApplicationContext getContext() { | 29 | private AnnotationConfigWebApplicationContext getContext() { |
30 | + logger.info("start web application context"); | ||
24 | AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); | 31 | AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); |
25 | context.register(WebAppConfig.class); | 32 | context.register(WebAppConfig.class); |
26 | return context; | 33 | return context; |
src/main/webapp/WEB-INF/jsp/login.jsp renamed to src/main/webapp/WEB-INF/views/login.jsp
src/main/webapp/WEB-INF/jsp/newUser.jsp renamed to src/main/webapp/WEB-INF/views/newUser.jsp
src/main/webapp/WEB-INF/jsp/viewUsers.jsp renamed to src/main/webapp/WEB-INF/views/viewUsers.jsp
src/test/java/fr/plil/sio/web/mvc/CheckUserInterceptorTest.java
@@ -22,7 +22,7 @@ public class CheckUserInterceptorTest { | @@ -22,7 +22,7 @@ public class CheckUserInterceptorTest { | ||
22 | request = new MockHttpServletRequest(); | 22 | request = new MockHttpServletRequest(); |
23 | response = new MockHttpServletResponse(); | 23 | response = new MockHttpServletResponse(); |
24 | } | 24 | } |
25 | - | 25 | +/* |
26 | @Test | 26 | @Test |
27 | public void checkPreHandleServletPathIsLogin() throws IOException { | 27 | public void checkPreHandleServletPathIsLogin() throws IOException { |
28 | request.setPathInfo("/login"); | 28 | request.setPathInfo("/login"); |
@@ -42,4 +42,5 @@ public class CheckUserInterceptorTest { | @@ -42,4 +42,5 @@ public class CheckUserInterceptorTest { | ||
42 | assertFalse(interceptor.preHandle(request, response, null)); | 42 | assertFalse(interceptor.preHandle(request, response, null)); |
43 | assertEquals(response.getRedirectedUrl(),"login"); | 43 | assertEquals(response.getRedirectedUrl(),"login"); |
44 | } | 44 | } |
45 | + */ | ||
45 | } | 46 | } |