1.自定义认证前端页面

简介: 本文介绍Spring Security前后端整合的实现步骤:前端引入login.html页面,后端定义接口与配置类,通过SecurityConfig设置表单登录、权限认证及跳转逻辑,最后启动项目验证登录流程,实现安全访问控制。

1-前端代码

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

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月前
|
人工智能 机器人 定位技术
什么是Agentic AI
2026 CES上,黄仁勋力推Agentic AI(智能体)——不止回答问题,更能理解意图、自主规划、调用工具、执行任务。它正加速落地:吉利车机语音操控生态、昆仑万维AI视频创作、跨境财税与AI面试等ToB场景已规模化应用,降本增效显著。(239字)
|
4月前
|
Java Shell 测试技术
Jmeter快速入门
本文介绍JMeter的安装与快速入门,包括下载、解压、运行步骤,以及中文语言设置和基本使用方法,帮助用户快速上手性能测试工具JMeter。
|
4月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细讲解了Nacos作为配置中心的核心功能与实践应用,涵盖配置管理、热更新、共享配置及优先级规则,并通过搭建Nacos集群实现高可用部署,帮助开发者掌握微服务环境下配置的集中化管理方案。
 Nacos配置中心
|
4月前
|
负载均衡 Java 数据安全/隐私保护
Gateway服务网关
本文介绍了微服务架构中网关的核心作用,包括请求路由、权限控制和限流等功能,重点讲解了Spring Cloud Gateway的使用方法。内容涵盖网关的快速搭建、路由配置、断言与过滤器工厂的应用,并通过实际案例演示了如何实现全局过滤器与跨域问题的解决方案,帮助开发者掌握微服务统一入口的关键技术。
 Gateway服务网关
|
4月前
|
SpringCloudAlibaba Java Nacos
SpringCloud概述
Spring Cloud是微服务架构的综合解决方案,由Spring团队推出,具备约定大于配置、组件丰富、开箱即用等特点。为解决Netflix组件停更问题,阿里推出Spring Cloud Alibaba,集成Nacos、Sentinel、Seata等高性能中间件,成为主流技术栈选择。
|
4月前
|
NoSQL Linux 网络安全
Redis集群部署指南
本章基于CentOS7搭建Redis集群,涵盖单机安装、主从复制、哨兵高可用及分片集群配置,详细演示Redis集群部署与管理全过程。
Redis集群部署指南
|
5月前
|
人工智能 编解码 监控
《AV1解码生态全景图》,迄今最全面的AV1解码生态报告
截至2025年11月最完整详尽的 AV1 解码生态全景报告
|
9月前
|
消息中间件 Kafka 数据处理
三步构建秒级信息监测系统:从创意灵感到工程落地
本文提出一种基于事件驱动的秒级信息采集策略,借鉴即时通信机制,通过“快速判断—变化比对—精准提取”三步模型,实现高效、低负载的网页变动监测,适用于财经、新闻等高频更新场景,提升信息响应速度与系统稳定性。
231 0
|
人工智能 自然语言处理 文字识别
解读 | 金融长上下文基准测试FailSafeQA:解锁金融领域LLM真实的审慎性和容错性
近年来,大型语言模型(LLMs)在金融领域的应用如火如荼,从风险分析到客户服务,它们正逐步改变行业的游戏规则。然而,这些模型是否真的足够“靠谱”?面对复杂的金融数据和多变的用户输入,它们还能保持精准和稳健吗?
357 8
解读 | 金融长上下文基准测试FailSafeQA:解锁金融领域LLM真实的审慎性和容错性
|
数据可视化 前端开发 数据挖掘
【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏
本文介绍了一个基于Python Flask框架的广州历史天气数据应用与可视化大屏系统,该系统通过数据采集、处理、分析和可视化技术,提供了丰富的气象数据展示和决策支持,帮助用户快速了解和应对气象变化。
747 110
【优秀python大屏】基于python flask的广州历史天气数据应用与可视化大屏