【SpringSecurity 】SpringSecurity 自定义登录页面

编程入门 行业动态 更新时间:2024-10-24 12:27:32

【SpringSecurity 】SpringSecurity <a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义登录页面"/>

【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自带@Configuration
public 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;@Controller
public class LoginController {@GetMapping("/login")public String login(){return "login";}
}

三、登录页面

<!DOCTYPE html>
<html xmlns:th=""><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="">
<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>

更多推荐

【SpringSecurity 】SpringSecurity 自定义登录页面

本文发布于:2023-11-16 13:06:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1623827.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   页面   SpringSecurity

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!