自定义认证前端页面

简介: 本教程介绍Spring Security前后端集成登录验证。前端创建login.html,后端通过SecurityConfig配置类实现权限控制,包括自定义登录页、接口地址、参数名及成功/失败跳转路径,并禁用CSRF。启动后访问指定URL,自动跳转至登录页,输入用户名密码(user/控制台输出密码)即可认证访问受保护接口。

1-前端代码
login.html
(2 KB)
拷贝上述路径到下述位置,注意没有对应文件夹则需要手动创建
2-后端代码
1.定义接口
这里我们在原来的基础之上,继续追加一个即可,我就简单的添加一下哥哥的地址吧
2.创建配置类
Java
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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控制台打印
输入用户名、密码后跳转返回我们的接口信息

相关文章
|
开发工具 Docker 容器
Docker(32)- 如何修改 docker 容器的启动参数
Docker(32)- 如何修改 docker 容器的启动参数
2298 0
Docker(32)- 如何修改 docker 容器的启动参数
|
9月前
|
SpringCloudAlibaba Java Nacos
SpringCloud概述
Spring Cloud是Spring推出的微服务统一解决方案,弥补了各技术分散的不足,具备约定优于配置、组件丰富、开箱即用等特点。通过伦敦地铁站命名版本,避免与子项目版本冲突。Spring Cloud Alibaba融合阿里开源组件(如Nacos、Sentinel、Seata等),提供完整微服务生态,因Netflix组件停更,现成为主流选择。本节介绍其诞生背景、版本机制及技术体系,为后续实战奠定基础。
|
6月前
|
Web App开发 缓存 运维
16 亿用户凭证泄露背景下身份认证安全治理研究
本文剖析2025年16亿条用户凭证大规模泄露事件,揭示Infostealer窃取与撞库攻击全链路机制,结合密码学、终端安全与行为风控技术,提出含双因素认证、泄露密码检测等可复现防御方案,构建事前预防—事中监测—事后处置的全周期治理体系。(239字)
339 2
|
JSON API 数据格式
淘宝/天猫图片搜索API接口,json返回数据。
淘宝/天猫平台虽未开放直接的图片搜索API,但可通过阿里妈妈淘宝联盟或天猫开放平台接口实现类似功能。本文提供基于淘宝联盟的图片关联商品搜索Curl示例及JSON响应说明,适用于已获权限的开发者。如需更高精度搜索,可选用阿里云视觉智能API。
|
3月前
|
存储 人工智能 自然语言处理
AI智能客服系统的开发
本方案构建基于LLM+RAG+Agent的现代AI客服系统,覆盖多渠道接入、智能意图识别、安全合规过滤、向量化知识库、长短期记忆及业务系统直连(查物流、退换货等)。含完整开发流程与人机协同机制,实现“能说会干、越用越聪明”的智能服务。(239字)
|
3月前
|
监控 安全 测试技术
深度集成无影云桌面API实现默认截屏权限的动态防御体系
本文揭示截屏成数据泄密“暗门”,剖析其隐蔽性强、取证难、成本低三大特征,指出传统DLP忽视屏幕出口的短板。基于阿里云无影云桌面API,提出“动态截屏防御”方案:依据文档加密状态实时启停防截屏、叠加明/盲水印、录屏审计,实现安全与效率平衡,践行零信任“数据在哪,防护就在哪”理念。(239字)
|
5月前
|
运维 API 调度
【大模型】《大模型部署与优化——三大核心模块》(模型量化(PTQ/QAT/AWQ)、推理优化(vLLM、TensorRT)、PagedAttention、服务化部署)
本知识库系统梳理大模型部署与优化全链路:直击显存墙、访存瓶颈等底层挑战;详解PTQ/QAT/AWQ量化技术;深度解析PagedAttention与vLLM/TensorRT-LLM推理引擎;覆盖服务化部署、云原生架构及选型实践,助力高效、稳定、低成本落地。
|
5月前
|
存储 自然语言处理 算法
大模型应用:基于千问大模型 + 图算法:可追溯知识图谱问答系统构建.83
本文介绍“图算法+大模型”双引擎智能问答方案:用PageRank、最短路径等图算法处理关系推理与知识验证,由千问大模型负责自然语言理解与生成,实现可信、可溯源、强推理的高可靠问答,破解幻觉、推理弱、不可溯三大难题。
709 7
|
6月前
|
消息中间件 人工智能 NoSQL
2026实战:用ChatGPT官网设计高可用秒杀系统架构
本文介绍AI(如GPT-4o)如何高效辅助技术架构师设计高并发秒杀系统:3秒生成含限流、Redis原子扣减、RocketMQ异步下单、分库分表等的完整方案,覆盖技术选型、伪代码、风险点及文档输出,将2人天工作压缩至2小时内,提升设计效率与质量。(239字)
|
9月前
|
容灾 关系型数据库 Nacos
Seata的部署和集成
本文介绍Seata分布式事务TC服务的部署与微服务集成步骤。包括下载、配置、数据库表初始化,通过Nacos实现配置共享与注册,搭建高可用集群,并实现异地容灾。微服务通过统一配置中心动态映射事务组,提升系统灵活性与可靠性。(239字)

热门文章

最新文章