【SpringSecurity 】SpringSecurity 自定义登录页面,明基p50
cpugpu芯片开发光刻机
半导体技术突破
4
文件名:【SpringSecurity 】SpringSecurity 自定义登录页面,明基p50
【SpringSecurity 】SpringSecurity 自定义登录页面
一、配置 package com.boot.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.Customizer;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;import org.springframework.security.web.SecurityFilterChain;/*** @EnableWebSecurity:SpringSecurity的配置类 开启SpringSecurity【自带大量过滤器链:责任链模式】*/@Configuration //@EnableWebSecurity //5.x中@EnableWebSecurity自带@Configurationpublic class SecurityConfig {@Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {return http.authorizeHttpRequests(authorizeHttpRequests-> //在这个后面开始配置URL相关的【URL访问权限控制相关的】authorizeHttpRequests.requestMatchers("/login").permitAll() //permitAll:授予所有权限【匿名可以访问的、不用登录就可以访问】.anyRequest() //任何的请求.authenticated() //需要认证【登录】后才能访问).formLogin(formLogin->formLogin.loginPage("/login") //登录页面.loginProcessingUrl("/login").permitAll() //登录接口可以匿名访问.defaultSuccessUrl("/index") //登录成功访问/index页面).csrf(Customizer.withDefaults()) //关闭跨域漏洞攻击防护.logout(logout->logout.deleteCookies("JSESSIONID").invalidateHttpSession(true).logoutSuccessUrl("/index")) //退出登录接口.build();}} 二、登录控制器 package security03.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class LoginController {@GetMapping("/login")public String login(){return "login";}} 三、登录页面 <!DOCTYPE html><html xmlns:th="https://www.thymeleaf.org"><head><title>请登录</title></head><body><div><form th:action="@{/login}" method="post"><p><span>用户名:</span><input type="text" id="username" name="username"></p><p><span>密码:</span><input type="password" id="password" name="password"></p><!-- 不使用 th:action 属性 和 不关闭csrf 的情况下,需要放开下面的标签 --><!--<input th:name="${_csrf.parameterName}" type="hidden" th:value="${_csrf.token}"/>--><input type="submit" value="登录" /></form></div></body></html> 三、退出:注意,退出是post请求!!! <!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>系统首页</title></head><body><h1 style="background-color: goldenrod">欢迎访问系统</h1><form th:action="@{/logout}" method="post"><input type="submit" value="退出系统"/></form></body></html>
同类推荐
-

【QGIS入门实战精品教程】14.1:QGIS如何加载各种在线地图?,OPPO A105
查看 -

【QMIX】一种基于Value-Based多智能体算法,家用机游戏(多智能体代码)
查看 -

【QT开发(17)】2023-QT 5.14.2实现Android开发,谷歌音乐搜索
查看 -

【Qt控件之QListWidget】介绍及使用,利用QListWidget、QToolButton、和布局控件实现抽屉式组合控件,280x
查看 -

【RK3399 PCIE调试——硬件信息资源获取】,只有我最摇摆
查看 -

【RPC】基础,步步高i528(步步高i518)
查看 -

【RabbitMQ】Linux系统服务器安装RabbitMQ,多普达m700(多普达windows)
查看 -

【React-Router】路由导航,微星780g主板(微星7808主板)
查看 -

【Redis】Redis中的布隆过滤器,6210s(redis布隆过滤器使用)
查看