diff --git a/src/main/java/com/fjy/spring/constant/GlobalConstant.java b/src/main/java/com/fjy/spring/constant/GlobalConstant.java
new file mode 100644
index 0000000..04f870a
--- /dev/null
+++ b/src/main/java/com/fjy/spring/constant/GlobalConstant.java
@@ -0,0 +1,5 @@
+package com.fjy.spring.constant;
+
+public class GlobalConstant {
+ public static final String USER_SESSION_KEY = "USER_SESSION";
+}
diff --git a/src/main/java/com/fjy/spring/controller/LoginController.java b/src/main/java/com/fjy/spring/controller/LoginController.java
index 95bc600..798c636 100644
--- a/src/main/java/com/fjy/spring/controller/LoginController.java
+++ b/src/main/java/com/fjy/spring/controller/LoginController.java
@@ -1,22 +1,36 @@
package com.fjy.spring.controller;
import com.fjy.spring.domain.TbUser;
+import com.fjy.spring.properties.ServerProperties;
import com.fjy.spring.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import static com.fjy.spring.constant.GlobalConstant.USER_SESSION_KEY;
+
@Controller
public class LoginController {
+ @Autowired
+ private ServerProperties serverProperties;
@Autowired
private UserService userService;
+ @Resource
+ HttpServletRequest request;
+
@PostMapping("/login/dologin")
public String doLogin(TbUser tbUser)throws Exception{
- if (userService.doLoginService(tbUser.getColname(),tbUser.getColpassword())){
- return "/home/home";
+ TbUser user = userService.doLoginService(tbUser.getColname(),tbUser.getColpassword());
+ if (user!=null){
+ request.getSession().setAttribute(USER_SESSION_KEY,user);
+ return "redirect:" + request.getScheme() + "://" + request.getServerName() + ":"
+ + serverProperties.getPortNum() + request.getContextPath() + "/home";
}
return "login";
}
diff --git a/src/main/java/com/fjy/spring/controller/NavController.java b/src/main/java/com/fjy/spring/controller/NavController.java
index 9a37b36..107dc65 100644
--- a/src/main/java/com/fjy/spring/controller/NavController.java
+++ b/src/main/java/com/fjy/spring/controller/NavController.java
@@ -19,4 +19,9 @@ public class NavController {
public String toTestAxiosPage(){
return "/dist/axiosTest";
}
+
+ @GetMapping(value = {"/home"})
+ public String toHomePage(){
+ return "/home/home";
+ }
}
diff --git a/src/main/java/com/fjy/spring/interceptor/LoginInterceptor.java b/src/main/java/com/fjy/spring/interceptor/LoginInterceptor.java
new file mode 100644
index 0000000..c1f59ad
--- /dev/null
+++ b/src/main/java/com/fjy/spring/interceptor/LoginInterceptor.java
@@ -0,0 +1,31 @@
+package com.fjy.spring.interceptor;
+
+import com.fjy.spring.constant.GlobalConstant;
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class LoginInterceptor implements HandlerInterceptor {
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+ System.out.println("preHandle");
+ Object user = request.getSession().getAttribute(GlobalConstant.USER_SESSION_KEY);
+ if (user==null){
+ response.sendRedirect("/cms/index");
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+ System.out.println("postHandle");
+ }
+
+ @Override
+ public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+ System.out.println("afterCompletion");
+ }
+}
diff --git a/src/main/java/com/fjy/spring/interceptor/WebAppConfig.java b/src/main/java/com/fjy/spring/interceptor/WebAppConfig.java
new file mode 100644
index 0000000..5f02093
--- /dev/null
+++ b/src/main/java/com/fjy/spring/interceptor/WebAppConfig.java
@@ -0,0 +1,33 @@
+package com.fjy.spring.interceptor;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class WebAppConfig implements WebMvcConfigurer {
+
+ /**
+ * 注册拦截器
+ * @param registry
+ */
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/home/**");
+ }
+
+ /**
+ * 排除静态资源
+ * @param registry
+ */
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("/cms/js/**").addResourceLocations("classpath:/js/");
+ registry.addResourceHandler("/cms/css/**").addResourceLocations("classpath:/css/");
+ registry.addResourceHandler("/css/**").addResourceLocations("classpath:/css/");
+ registry.addResourceHandler("/cms/fonts/**").addResourceLocations("classpath:/fonts/");
+ registry.addResourceHandler("/cms/images/**").addResourceLocations("classpath:/images/");
+ }
+}
diff --git a/src/main/java/com/fjy/spring/service/UserService.java b/src/main/java/com/fjy/spring/service/UserService.java
index 5f482af..b789b5a 100644
--- a/src/main/java/com/fjy/spring/service/UserService.java
+++ b/src/main/java/com/fjy/spring/service/UserService.java
@@ -15,11 +15,11 @@ public class UserService {
private TbUserRepository tbUserRepository;
- public boolean doLoginService(String name,String password){
+ public TbUser doLoginService(String name,String password){
TbUser user = (TbUser)tbUserRepository.findByColname(name).get();
if (user!=null){
if (password.equals(user.getColpassword())){
- return true;
+ return user;
}else {
throw new UserException(ResultEnum.WRONGPASS);
}
@@ -32,7 +32,8 @@ public class UserService {
TbUser user = tbUserRepository.save(tbUser);
if (user!=null){
- throw new UserException(ResultEnum.SUCCESS);
+ //throw new UserException(ResultEnum.SUCCESS);
+ return true;
}
return false;
}
diff --git a/src/main/resources/templates/home/home.html b/src/main/resources/templates/home/home.html
index ec6317a..418457b 100644
--- a/src/main/resources/templates/home/home.html
+++ b/src/main/resources/templates/home/home.html
@@ -56,7 +56,7 @@
-
-
+
+