1.自定义认证前端页面

本文涉及的产品
RDS AI 助手,专业版
云数据库 PolarDB MySQL 版,列存表分析加速 8核16GB
PolarDB Agent Flow,2核4GB
简介: 本文介绍Spring Security前后端整合配置:前端提供login.html登录页面,后端通过HelloController定义接口,SecurityConfig配置类实现表单登录认证,包括登录页、参数名、成功失败跳转等,并禁用CSRF。启动后访问/demo/index可验证登录拦截与跳转功能。

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控制台打印

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

相关文章
|
存储 JSON 安全
Token泄露引发的问题
Token泄露引发的问题
1897 0
|
4月前
|
NoSQL 前端开发 数据挖掘
私域直播系统源码架构解析:从开播到成交的完整链路设计
本文深度解析私域直播系统源码级实现,涵盖推流鉴权、实时互动(WebSocket+Redis)、商品挂载、秒级下单、支付闭环及用户标签沉淀等全链路架构。强调技术可控、数据归属与业务可扩展性,助力企业构建稳定、自主、可复用的私域直播闭环。(239字)
|
5月前
|
存储 物联网 PyTorch
不用换显卡!大模型微调显存优化实操指南(附代码+效果对比)
不用换显卡!本文详解三大显存优化技巧:梯度检查点、混合精度训练、动态批量调整,附PyTorch实操代码与效果对比。16G显卡成功微调Llama 2 7B,显存占用直降38.5%,精度几乎无损,学生党、个人开发者也能轻松上手。
不用换显卡!大模型微调显存优化实操指南(附代码+效果对比)
|
3月前
|
安全 Linux API
【最新】“小龙虾”OpenClaw部署(阿里云/Win11/MacOS/Linux)保姆级教程+免费大模型API接入+10个必装Skills清单+FAQ
每天2小时,被重复填表、文件整理、数据录入等机械工作占据——这是2026年普通办公者的真实写照。多数AI工具仅能提供文本建议,无法落地执行,效率提升杯水车薪。而OpenClaw(昵称“小龙虾”)的横空出世,彻底打破了这一局限:作为GitHub星标27万+、全球部署超100万实例的开源AI智能体,它的核心优势是“真正会做事”——通过自然语言指令,直接接管电脑执行复杂任务,从清理邮件、整理文件到修复代码、监控网站,全流程自动化。
1215 4
|
4月前
|
监控 数据可视化 API
日本股票K线图生成实战:基于API的完整对接方案
本文详解如何通过StockTV金融API(countryId=35)对接日本股市,用Python快速获取实时行情与多周期K线数据,并基于mplfinance库生成红涨绿跌、带均线/RSI的技术图表,涵盖从密钥申请、依赖安装到完整实战的全流程。
|
6月前
|
开发者
业务架构图
本文介绍了业务架构图的核心概念与绘制方法,涵盖业务定义、架构域分类、分层分模块分功能的要义,并结合实例说明其在产品设计中的应用价值。
|
6月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细介绍Nacos作为配置中心的实现原理与实战应用,涵盖配置管理、热更新、共享配置及优先级规则,并演示集群搭建与高可用部署,提升微服务架构下配置的动态管理能力。
|
6月前
|
SpringCloudAlibaba Java Nacos
SpringCloud概述
Spring Cloud是微服务的统一解决方案,具备约定大于配置、组件丰富、开箱即用等特点。通过整合Netflix与Alibaba生态,形成完整技术栈,其中Spring Cloud Alibaba因Nacos、Sentinel等优秀组件成为主流选择。
|
6月前
|
JSON Dubbo Java
Feign远程调用
本文介绍了如何使用Feign替代RestTemplate实现更优雅的HTTP跨服务调用。通过引入Feign,解决传统方式中服务地址硬编码、代码可读性差等问题,并结合注册中心实现服务发现。文章详细讲解了Feign的集成步骤、自定义配置(如日志级别)、性能优化(如连接池)及最佳实践,包括接口抽取与模块复用方案,提升微服务间通信的可维护性和开发效率。
|
6月前
|
安全 Java 应用服务中间件
实现权限管理的技术
权限管理技术选型需综合考量。常见方案有Apache Shiro、Spring Security与自定义ACL。Shiro轻量易用,但安全维护弱;Spring Security功能强大且安全机制完善,适合Spring生态,但配置复杂;自定义ACL契合业务但维护成本高。需根据项目规模与架构权衡选择。

热门文章

最新文章