1.自定义认证前端页面

简介: 本示例展示Spring Security基础配置:前端引入登录页,后端新增接口与安全配置。通过SecurityConfig实现请求认证、表单登录、自定义跳转,启动后访问/demo/index将自动跳转登录页,认证成功后返回欢迎信息,实现简单安全控制。(238字)

1-前端代码

● 拷贝上述路径到下述位置,注意没有对应文件夹则需要手动创建

2-后端代码
1.定义接口
这里我们在原来的基础之上,继续追加一个即可,我就简单的添加一下哥哥的地址吧
package com.yzxb.SpringSecurity.web;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("demo")
public class HelloController {

@GetMapping
public String helloWorld() {
    return "Hello Spring Security";
}

// 这个是新增的
@RequestMapping("/index")
public String index(){
    return "油炸小波,欢迎加入IKUN大家庭";
}

}

2.创建配置类
package com.yzxb.SpringSecurity.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
            .anyRequest().authenticated().and().formLogin()
            .loginPage("/login.html")
            .loginProcessingUrl("/doLogin")
            .defaultSuccessUrl("/demo/index")
            .failureUrl("/login.html")
            .usernameParameter("uname")
            .passwordParameter("passwd")
            .permitAll()
            .and()
            .csrf().disable();
}

}
这个配置类非常重要,笔者带领大家单独解释一下。
(1)configure是一个链式配置,这里不用链式配置也可以,那就每一个属性设置后再http.重新开始写
(2)authenticated()表示开始权限配置,.anyRequest().authenticated()表示所有请求都需认证才可访问
(3)and()会返回HttpSecurityBuilder对象的一个子类(实际就是HttpSecurity),所以and方法相当于又回到HttpSecurity,重新开启新一轮的配置
(4)formLogin()表示开启表单登录配置,loginPage("")用来配置登录页面地址;loginProcessingUrl("")用来配置登录接口地址;defaultSuccessUrl("")用来表示登陆成功后的跳转地址;failureUrl("")表示登录失败后的跳转地址;usernameParameter、passwordParameter表示登录用户名、密码参数名称;permitAll()表示跟登录相关的接口和页面不做拦截,直接通过。
(5)csrf().disable()表示禁用CSRF防御功能,SpringSecurity自带CSRF机制,这里为了测试方便临时关闭。
3-启动验证
● 启动工程后访问地址:http://localhost:8080/demo/index
● 页面自动跳转至我们自己创建的登录页面,用户名:user,密码:参照idea控制台打印

● 输入用户名、密码后跳转返回我们的接口信息

相关文章
|
3月前
|
前端开发 程序员
常见注解及使用说明
SpringMVC通过注解将HTTP请求映射到控制器方法,如@RequestMapping定义接口路径,实现前后端对接。常用注解包括@GetMapping、@PostMapping等,均为@RequestMapping的封装,用于精准匹配增删改查等操作,提升开发效率与可维护性。(238字)
|
Shell 开发工具 git
Git获取本地仓库及基础操作指令
Git获取本地仓库及基础操作指令
299 0
|
存储 人工智能 安全
阿里云网盘与相册服务(简称PDS)是阿里云为客户提供的面向企业、团队与个人的数据管理开放平台
阿里云网盘与相册服务(简称PDS)是阿里云为客户提供的面向企业、团队与个人的数据管理开放平台
775 1
|
数据可视化 数据挖掘 BI
python数据分析和可视化【2】鸢尾花数据分析
python数据分析和可视化【2】鸢尾花数据分析
600 0
|
5月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
10月前
|
前端开发 开发工具
鸿蒙开发:那些常用的资源管理方法
熟练的使用资源管理,可以极大的提高我们的开发效率,不仅仅在一些组件中使用到,更多的是在一些三方的sdk中,由于定义的类型单一,为了项目的可维护,资源管理的使用也是非常的常见的。
256 5
鸿蒙开发:那些常用的资源管理方法
|
11月前
|
人工智能 自然语言处理 测试技术
通义灵码入选 “2025 年值得关注的 AIGC 产品”,是唯一入选的 AI 编程产品
阿里云的通义灵码是一款基于通义大模型的AI编程助手,能够智能生成代码、优化结构、排查错误并自动生成测试用例,支持多种主流编程语言。在2025年入选《值得关注的AIGC产品》榜单,凭借卓越技术与广泛应用场景成为国内开发者首选。通义灵码已在国内多个行业落地,大幅提升开发效率与代码质量,同时针对中文编程场景优化,支持企业内网部署保障数据安全,推动AI编程技术在教育与科研领域的创新应用。
|
安全 云栖大会 UED
阿里云×用友 | 用友BIP超级版On阿里云联合方案全新发布,共启数智化新未来
阿里云×用友 | 用友BIP超级版On阿里云联合方案全新发布,共启数智化新未来
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
Java Unix 程序员
一文彻底搞定C语言的前世今生
C语言是计算机编程史上的一颗璀璨恒星,由贝尔实验室的肯·汤普逊和丹尼斯·里奇在20世纪70年代基于B语言开发。它凭借高效、灵活、可移植性强等特点迅速崛起,成为Unix操作系统的核心语言,并广泛应用于操作系统、嵌入式系统、游戏引擎等领域。C语言不仅推动了众多后续编程语言的发展,如C++、Java等,还通过多次标准化(C89、C99、C11等)不断适应新时代的需求,至今仍占据着计算机技术的重要地位。
419 0