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("message", "用户名和密码错误"); 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 : ‘请输入用户名‘, }] }, password : { indentifier:‘password‘, rules: [{ type : ‘empty‘, prompt : ‘请输入密码‘, }] } } }) </script>
package com.skgxsn.blog_idea2017.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Utils { /** * MD5加密类 * @param str 要加密的字符串 * @return 几米后的字符串 */ public static String code(String str) { 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位加密 return buf.toString(); //16位加密 // return buf.toString().substring(8, 24); } 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"); } }
原文:https://www.cnblogs.com/skygrass0531/p/12551250.html