Spring Security Form表单认证代码实例
Spring Security Form表单认证
Spring Security中,常见的认证方式可以分为HTTP层面和表单层面,如下:
- HTTP基本认证
- Form表单认证
- HTTP摘要认证
Spring Security Form表单实现实例:
1、pom依赖
1 <!-- 引入 security-->
2 <dependency>
3 <groupId>org.springframework.boot</groupId>
4 <artifactId>spring-boot-starter-security</artifactId>
5 </dependency>
2、配置类
登录成功时,defaultSuccessUrl配置页面,successForwardUrl通过接口重定向到页面。
1 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
2 import org.springframework.security.config.annotation.web.builders.WebSecurity;
3 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
4 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
5
6 /**
7 * @author:
8 * @date: 2023/1/6
9 * @description:
10 */
11 @EnableWebSecurity
12 public class SecurityConfig extends WebSecurityConfigurerAdapter {
13
14 /**
15 * configure
16 *
17 * @param [web]
18 * @return void
19 * @description 配置请求哪些资源时,不需要认证
20 *
21 */
22 @Override
23 public void configure(WebSecurity web) throws Exception {
24 super.configure(web);
25 web.ignoring()
26 .antMatchers("/js/**", "/css/**");
27 }
28
29 /**
30 * configure
31 *
32 * @param [http]
33 * @return void
34 * @description
35 * 使用defaultSuccessUrl,可以不配置successForwardUrl
36 */
37 @Override
38 protected void configure(HttpSecurity http) throws Exception {
39 // 配置表单认证方式
40 http.authorizeRequests()
41 //任何请求都需要被认证,必须登录后才能访问
42 .anyRequest()
43 .authenticated()
44 .and()
45 // 开启表单认证
46 .formLogin()
47 //登录页面配置
48 .loginPage("/login.html")
49 .permitAll()
50 //登录成功后,指定跳转到首页(true)
51 // .defaultSuccessUrl("/index.html", true)
52 //post请求的登录接口
53 .loginProcessingUrl("/login")
54 .successForwardUrl("/success")
55 //登录失败,用户名或密码错误
56 .failureUrl("/error.html")
57 //登录时,携带的用户名和密码的表单的键 login.html中的表单
58 .usernameParameter("username")
59 .passwordParameter("password")
60 .and()
61 //注销接口
62 .logout()
63 //url
64 .logoutUrl("/logout")
65 //注销成功后跳转的页面
66 .logoutSuccessUrl("/login.html")
67 .permitAll()
68 //删除自定义的cookie
69 .deleteCookies("myCookie")
70 .and()
71 //关闭csrf防护功能(跨站请求伪造),否则登录不成功
72 .csrf()
73 .disable();
74 }
75 }
3、control
1 import org.springframework.stereotype.Controller;
2 import org.springframework.web.bind.annotation.GetMapping;
3 import org.springframework.web.bind.annotation.RequestMapping;
4 import org.springframework.web.bind.annotation.ResponseBody;
5
6 /**
7 * @description:
8 */
9 @Controller
10 public class SecurityController {
11
12 @GetMapping("hello")
13 @ResponseBody
14 public String hello(){
15 return "hello security";
16 }
17
18 @RequestMapping("success")
19 public String success(){
20 return "redirect:index.html";
21 }
22 }
4、html代码
login.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>Document</title>
7 </head>
8 <body>
9 <div class="main">
10 <form class="login-form" method="post" action="/login">
11 用户名: <input type="text" autocomplete="off"
12 placeholder="用户名" name="username" required/><br>
13 密码: <input type="password"
14 autocomplete="off" placeholder="登录密码" name="password" required/><br>
15 <button type="submit" class="enter-btn">登录</button>
16 </form>
17 </div>
18 </body>
19 </html>
index.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>首页</title>
6 </head>
7 <body>
8 <h3>Spring Security首页,欢迎!</h3>
9
10 </body>
11 </html>
error.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Title</title>
6 </head>
7 <body>
8 <h3>登录失败!!!</h3>
9 </body>
10 </html>
5、表单登录
默认用户名:user
密码:项目启动后,控制台打印。
6、项目目录结构

Spring Security Form表单认证代码实例的更多相关文章
- C#之Form表单认证
原文地址: https://blog.csdn.net/chadcao/article/details/7859394 ASP.NET的安全认证,共有“Windows”.“Form”.“Passpor ...
- spring mvc form表单提交乱码
spring mvc form表单submit直接提交出现乱码.导致乱码一般是服务器端和页面之间编码不一致造成的.根据这一思路可以依次可以有以下方案. 1.jsp页面设置编码 <%@ page ...
- php laravel加密 form表单认证 laravel分页
use Illuminate\Support\Facades\Crypt; echo Crypt::encrypt(123); //加密echo "<br>";//解密 ...
- 表单验证代码实例:jquery.validate.js表单验证插件
jquery.validate.js是JQuery旗下的一个验证插件,借助JQuery的优势,我们可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法.使用前请先下载必要的JQuery插件:jq ...
- Django 中的Form表单认证
一.Form表单 1.1 Form的几个功能 验证用户数据(显示错误信息) 初始化页面显示内容 HTML Form提交保留上次提交数据 生成HTML标签 1.2 创建表单类Form 1. 创建 ...
- spring mvc Controller与jquery Form表单提交代码demo
1.JSP表单 <% String basePath = request.getScheme() + "://" + request.getServerName() +&qu ...
- spring:设置映射访问路径 或 xml配置访问路径 (spring mvc form表单)
项目hello, 在src/main/java下面建一个目录: charpter2 一.xml配置访问路径 web.xml <web-app> <display-name>Ar ...
- Django之form表单认证
Model常用操作: - 参数:filter 三种传参方式 - all(得到的是列表),values(字典),values_list(元祖) [obj(id,name,pwd,email),obj(i ...
- spring security 表单认证的流程
spring security表单认证过程 表单认证过程 Spring security的表单认证过程是由org.springframework.security.web.authentication ...
- struts2总结四:Action与Form表单的交互
struts2 Action获取表单数据的方式有三种:1.通过属性驱动的方式.2.模型驱动方式.3.使用多个model对象的属性. 1.通过属性驱动式 首先在jsp里面编写form表单的代码如下: & ...
随机推荐
- 基于docker安装jumpserver
以下配置均在一台ubuntu上实现 # 生成宿主机Mysql配置文件,便于docker内容器使用 [root@ubuntu2004 ~]#mkdir -p /etc/mysql/mysql.conf. ...
- spring-属性注入(外部bean方式)
xml的配置如下<bean id="userService" class="com.spring5.service.UserService"> &l ...
- Unity之"诡异"的协程
为什么说是诡异的协程呢?首先从一个案例说起吧,示例如下: 游戏目标:让小车进入到对应颜色屋子里,即可获得一分.(转弯的道路可控) 为了让小车能够平滑转弯,小车的前进方向需要和车子的位置与圆心组成的 ...
- springboot中使用mybatis_plus逆向工程
创建springboot项目,选择图片中所示依赖 mybatis-plus生成的依赖 <!-- mybatis_plus --> <dependency> <groupI ...
- Go语言核心36讲33
我们在前几次讲的互斥锁.条件变量和原子操作都是最基本重要的同步工具.在Go语言中,除了通道之外,它们也算是最为常用的并发安全工具了. 说到通道,不知道你想过没有,之前在一些场合下里,我们使用通道的方式 ...
- LayuI 动态下拉框和动态设置选中
动态下拉框 //下拉框异步加载 function asyncSelect(thisId, grade, selectNodeName) { $("#" + selectNodeNa ...
- 【每日一题】【list转int数组】【Lambda的简化-方法引用】2022年1月15日-NC45 实现二叉树先序,中序和后序遍历
描述 给定一棵二叉树,分别按照二叉树先序,中序和后序打印所有的节点. 数据范围:0 \le n \le 10000≤n≤1000,树上每个节点的val值满足 0 \le val \le 1000≤ ...
- docker入门(利用docker部署web应用)
第一章 什么是docker1.1 docker的发展史2010年几个年轻人成立了一个做PAAS平台的公司dotCloud.起初公司发展的不错,不但拿到过一些融资,还获得了美国著名孵化器YCombina ...
- python算法初步(一)
python算法初步(一) 冒泡排序 时间效率O(n²)原理:依次比较相邻两个位置的元素大小,然后按照要求交换位置. #从中选出一个数据(作为最小数据),然后和其他的数据依次比较,如果有更小的数据,那 ...
- 3D旋转不能对齐,元素边倾斜
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset=" ...