企业网站建设可分为什么层次,福建建设执业管理中心网站,网站开发包括后台 前台,seo广告优化文章目录 1. 执行流程2. 为什么要自定义登录页面3. 创建登录页面4. 配置 Spring Security5. 创建请求 API6. 启动服务7. 验证8. 代码详细总结 Spring Security 是一个强大的身份验证和访问控制框架#xff0c;而 Thymeleaf 是一个用于构建动态 Web 页面的强大模板引擎。结合它… 文章目录 1. 执行流程2. 为什么要自定义登录页面3. 创建登录页面4. 配置 Spring Security5. 创建请求 API6. 启动服务7. 验证8. 代码详细总结 Spring Security 是一个强大的身份验证和访问控制框架而 Thymeleaf 是一个用于构建动态 Web 页面的强大模板引擎。结合它们你可以轻松地创建一个具有自定义登录页面的安全Web应用程序。 关联文章 【Spring实战】10 Security 入门
【Spring实战】11 Security 常用配置
【Spring实战】12 Thymeleaf 本文着重介绍在用户访问受保护的资源时如果未经身份验证则跳转到使用 Thymeleaf 自定义的登录页面
1. 执行流程
本文接下来介绍的案例代码大体执行流程 2. 为什么要自定义登录页面
Spring Security 自带的登录页面都是默认的一个画面风格太丑。如果我们想要自定义个一下画面样式或者文字就难以做到了因此我们需要自定义一个属于我们自己的登录页面。 自带的长这样 3. 创建登录页面
我们先在 Spring 默认的资源文件夹src/main/resources/templates下创建一个 HTML 文件 login.html !DOCTYPE html
html langen xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleKoala Login Page/titlelink relstylesheet hrefhttps://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css
/head
body classbg-light
div classcontainer mt-5div classrow justify-content-centerdiv classcol-md-6div classcarddiv classcard-header text-centerh3Koala System/h3/divdiv classcard-bodyform th:action{/login} methodpost classtext-centerlabel forusername/labelinput typetext classform-control mb-2 idusername nameusername th:value${username} placeholderUsername requiredlabel forpassword/labelinput typepassword classform-control mb-3 idpassword namepassword placeholderPassword requiredbutton typesubmit classbtn btn-primary btn-blockLogin/button/form/div/div/div/div
/div
/body
/html4. 配置 Spring Security SecurityConfig.java Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {return http// 用户访问受保护的资源时如果未经身份验证系统将会重定向到 /login 页面。// 用户在登录成功后将会被重定向到 /index 页面。// 最后的 .permitAll() 确保未经身份验证的用户可以访问登录页面。.formLogin(customizer - customizer.loginPage(/login).defaultSuccessUrl(/index, true).permitAll()).build();}5. 创建请求 API
创建一个 接收 login 请求的 API LoginController.java Controller
RequestMapping(login)
public class LoginController {GetMappingpublic String login() {return login;}
}分别再创建两个用于测试的请求 API IndexController.java Controller
RequestMapping(index)
public class IndexController {GetMappingpublic String index(Model model) {model.addAttribute(msg, Welcome to Koala System.);return index;}
}UserController.java Controller
RequestMapping(user)
public class UserController {GetMappingpublic String user() {return Hello;}
}6. 启动服务 7. 验证
首先我们访问 user 的 URL http://localhost:8080/user 我们发现原本它会跳到一个默认的登录页面。此时它跳到了我们上面自定义的登录页面啦
然后输入用户名和密码登录它 发现它居然跳到了 index 请求所对应的画面啦。因为我们加的这句代码 .defaultSuccessUrl(/index, true) 它表示登录成功后默认跳转到 index 。 8. 代码详细 https://github.com/cheney09/spring-practical-combat/tree/main/13/koala 总结
本文通过使用 Thymeleaf 自定义了一个 Spring Security 的登录画面并且设定了一个登录成功的默认请求。这里只是一个简单的例子在实际开发中还是需要根据具体需求来设定都是大同小异根据需求自由发挥即可。