自定义认证前端页面

简介: 本文介绍Spring Security前后端代码配置,包括前端路径拷贝、后端接口定义与安全配置。通过自定义登录页面、表单认证及权限控制,实现请求认证访问,并禁用CSRF以简化测试流程,最终验证登录跳转与接口访问功能。

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

OST:8080/LOGIN.HTM

登录

用户名:

密码:

登录


X


相关文章
|
7月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
本课程系统讲解MyBatis-Plus(MP)的核心功能与实战应用,涵盖快速入门、条件构造器、Service接口、代码生成、分页插件等常用功能,结合Spring Boot实现CRUD操作与复杂查询,提升开发效率。
持久层框架MyBatisPlus
|
7月前
|
负载均衡 Java 数据安全/隐私保护
Gateway服务网关
网关是微服务架构的统一入口,核心功能包括请求路由、权限控制和限流。通过Spring Cloud Gateway可实现高效路由转发与过滤器处理,支持跨域配置,提升系统安全性和稳定性。
|
7月前
|
canal 缓存 关系型数据库
微服务阶段原理篇
本文介绍了电商系统中ES索引与MySQL数据同步的解决方案,重点阐述了基于Canal和MQ的异步同步机制。通过解析MySQL的binlog日志,Canal实现数据变更的实时捕获,并结合RabbitMQ保证消息顺序性,最终实现Elasticsearch索引的高效更新。该方案解耦了业务逻辑与索引维护,提升了系统性能与一致性。
 微服务阶段原理篇
|
7月前
|
存储 JSON NoSQL
MongoDB常用命令
本文介绍了MongoDB常用操作命令,涵盖数据库与集合的创建、查看、删除,以及文档的增删改查、条件查询、投影、排序、分页和统计等功能,结合实例详细讲解了语法格式及使用注意事项,适用于初学者快速掌握MongoDB基本操作。
MongoDB常用命令
|
7月前
|
SQL 运维 分布式计算
如何做好SQL质量监控
SLS推出用户级SQL质量监控功能,集成于CloudLens for SLS,提供健康分、服务指标、运行明细、SQL Pattern分析及优化建议五大维度,助力用户全面掌握SQL使用情况,提升日志分析效率与治理能力。
如何做好SQL质量监控
|
7月前
|
存储 NoSQL Redis
Redis集群搭建
本文介绍了Redis主从复制、哨兵机制及分片集群的搭建与原理。主从结构实现读写分离,提升并发能力;哨兵集群监控主节点健康状态,实现故障自动转移;分片集群通过数据分片解决海量数据存储与高并发写入问题,结合Java客户端配置实现高可用与高性能的Redis服务架构。
Redis集群搭建
|
7月前
|
运维 Devops 开发工具
生产环境缺陷管理
git-poison基于go-git实现,通过“投毒-解毒-银针”机制,自动化管理多分支下的bug追溯与修复,避免人为疏漏导致的生产事故,降低协同成本,提升发布安全性与效率。
 生产环境缺陷管理
|
7月前
|
canal 消息中间件 关系型数据库
配置数据同步环境
本文介绍如何配置Canal+MQ实现MySQL数据同步。内容包括:开启MySQL主从同步并配置Binlog为ROW模式,创建Canal专用用户并授权;部署Canal服务,修改其配置文件以连接MySQL和RabbitMQ;设置监听的数据库表及消息路由规则;在RabbitMQ中创建交换机与队列并绑定;最后通过修改数据验证同步效果,并提供“数据不同步”“消息无法消费”等常见问题的解决方案。
配置数据同步环境
|
7月前
|
负载均衡 算法 架构师
Ribbon负载均衡
负载均衡是高并发系统中的核心技术,通过水平扩展将流量分摊至多台服务器,提升系统性能与可用性。本文详解负载均衡概念、分类(硬件/软件)、常见算法及Ribbon的客户端实现原理,包括自定义策略与饥饿加载优化,助力深入理解微服务架构中的流量分发机制。
Ribbon负载均衡
|
7月前
|
消息中间件 Java Nacos
SpringCloud概述
Spring Cloud是微服务的统一解决方案,具备注解化、组件丰富、开箱即用等特点。其版本以地铁站命名,避免与子项目冲突。Spring Cloud Alibaba整合Nacos、Sentinel、Seata等阿里开源组件,提供更完整、稳定的微服务生态,成为当前主流技术选型。