package com.skgxsn.blog_idea2017.service; import com.skgxsn.blog_idea2017.po.User; public interface UserService { User checkUser(String username, String password); }
package com.skgxsn.blog_idea2017.service; import com.skgxsn.blog_idea2017.dao.UserRepository; import com.skgxsn.blog_idea2017.po.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserServiceImpl implements UserService { @Autowired private UserRepository userRepository; @Override public User checkUser(String username, String password) { User user = userRepository.findByUsernameAndPassword(username, password); return user; } }
package com.skgxsn.blog_idea2017.dao; import com.skgxsn.blog_idea2017.po.User; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { User findByUsernameAndPassword(String username, String password); }
package com.skgxsn.blog_idea2017.web.admin; import com.skgxsn.blog_idea2017.po.User; import com.skgxsn.blog_idea2017.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 org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.servlet.http.HttpSession; @Controller @RequestMapping("/admin") public class LoginController { @Autowired private UserService userService; @GetMapping public String loginPage() { return "admin/login"; } @PostMapping("/login") public String login(@RequestParam String username, @RequestParam String password, HttpSession session, RedirectAttributes attributes) { User user = userService.checkUser(username, password); if (user != null) { user.setPassword(null); session.setAttribute("user", user); return "admin/index"; }else { attributes.addFlashAttribute ( "the Message", "user name and password error" ); return "redirect: / ADMIN" ; } } @GetMapping("/logout") public String logout(HttpSession session) { session.removeAttribute("user"); return "redirect:/admin"; } }
<div class="ui error mini message"></div> <div class="ui negative mini message" th:unless="${#strings.isEmpty(#messages)}" th:text="${#messages}">用户名或密码错误</div>
<script> $('.ui.form').form({ fields : { username : { indentifier:'username', rules: [{ type : 'empty', prompt: " Please enter your user name ' , }] }, password : { indentifier:'password', rules: [{ type : 'empty', prompt: " Please enter your password ' , }] } } }) </script>
package com.skgxsn.blog_idea2017.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Utils { /** * MD5 encryption class * @Param str string to be encrypted * @Return after a few meters string * / public static String code (STR String) { the try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(str.getBytes()); byte[] byteDigest = md.digest(); int i; StringBuffer buf = new StringBuffer(""); for (int offset = 0; offset < byteDigest.length; offset++) { i = byteDigest[offset]; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); } // 32-bit encryption return buf.toString (); // 16-bit encryption // return buf.toString () the substring (. 8, 24);. } The catch (NoSuchAlgorithmException E) { e.printStackTrace (); return null; } } public static void main(String[] args) { System.out.println(code("123456")); } }
package com.skgxsn.blog_idea2017.web.admin; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/admin") public class BlogController { @GetMapping("/blog-list") public String blogList() { return "admin/blog-list"; } }
// LoginInterceptor.java package com.skgxsn.blog_idea2017.Interceptor; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (request.getSession().getAttribute("user") == null) { response.sendRedirect("/admin"); return false; } return true; } } //WecConfig.java package com.skgxsn.blog_idea2017.Interceptor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor ( new LoginInterceptor ()) .addPathPatterns("/admin/**") .excludePathPatterns("/admin") .excludePathPatterns("/admin/login"); } }