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表单的代码如下: & ...
随机推荐
- 二、Django下载与运行
二.Django下载与运行 2.1.Django的下载 目前我们学习和使用的版本是3.2LTS版本 目前开源软件发布一般会有2个不同的分支版本: 1. 普通发行版本: 经常用于一些新功能,新特性,但是 ...
- 【保姆教程】RuoYi-Radius搭建实现portal认证
[保姆教程]RuoYi-Radius搭建实现portal认证 一.简介 以若依后台管理框架V4.6.0做为基础框架,实现了ToughRADIUS大部分功能,支持标准RADIUS协议(RFC 2865, ...
- 统计Oracle数据库某个用户下面的对象个数
统计某个用户下面的对象个数 包括表,视图,同义词,函数,存储过程,包,触发器,索引,约束,序列. 1. sql语句 SELECT (SELECT COUNT(*) FROM USER_TABLES) ...
- Java多线程的几种创建方式
方法一:继承Thread类,重写run方法,直接调用start方法开启线程. /** * 继承Thread类,直接调用start方法开启线程. * @author LuRenJia */ public ...
- jquery实现复选框的全选与取消全选功能
HTML代码 首先创建一个表格: <table class="table table-bordered table-hover"> <tr> <th& ...
- GO语言内存操作指导—unsafe的使用
在unsafe包里面,官方的说明是:A uintptr is an integer, not a reference.Converting a Pointer to a uintptr creates ...
- C++初阶(list容器+模拟实现)
list介绍 list的本质是一个带头的双向循环链表. 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点 ...
- EluxJS-让你像切蛋糕一样拆解前端巨石应用
大家好,EluxJS是一套基于"微模块"和"模型驱动"的跨平台.跨框架『同构方案』,欢迎了解... 可怕的巨石怪 工作中最可怕的是什么?是遇到业务复杂且乱作一团 ...
- 【devexpress】spinEdit控件如何设置只能输入两位小数
只需设置对应的正则表达式即可,我这里设置的是n2意思就是两位小数的意思 效果如下
- linux系统移植
1 linux环境搭建 1.1 添加交叉开发工具链 新建如下工程目录: gcc-4.6.4.tar.xz #拷贝 tar -Jxvf gcc-4.6.4.tar.xz #解压 cd ./gcc-4.6 ...