1.自定义认证前端页面

简介: 本文介绍Spring Security前后端集成的完整流程:前端引入login.html页面,后端新增接口与配置类,通过WebSecurityConfigurerAdapter实现登录认证,包含表单登录、权限控制及CSRF关闭等关键配置,并演示启动后自动跳转登录页、验证成功访问接口的全过程。

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月前
|
Dubbo IDE API
SpringCloud工程部署启动
本文介绍SpringCloud微服务工程搭建全过程,涵盖项目创建、模块配置、数据库部署及服务远程调用实现,通过RestTemplate完成跨服务数据交互,帮助开发者掌握微服务基础架构与调用机制。
SpringCloud工程部署启动
|
3月前
|
安全 数据库 数据安全/隐私保护
1.RememberMe简介及用法
RememberMe功能并非保存用户名密码,而是通过服务端生成持久化令牌(Token),借助Cookie实现关闭浏览器后仍保持登录状态。勾选“记住我”后,系统在响应头设置remember-me令牌,后续请求自动携带该令牌验证身份。为提升安全性,可将Token存入数据库并增加二次校验机制,防止令牌泄露带来的风险。
 1.RememberMe简介及用法
|
3月前
|
Java
@Inherited
@Inherited 是 Java 中的元注解,用于修饰其他注解,使其在类继承中可被子类继承。当某注解使用 @Inherited 时,若父类应用了该注解,其子类会自动继承该注解。但仅适用于类继承,接口之间或类实现接口时均不继承注解。
|
3月前
|
安全 Java 数据安全/隐私保护
认识SpringSecurity
Spring Security 是基于过滤器链的成熟安全框架,提供认证、鉴权及防御 CSRF 等攻击的核心功能,支持多种认证方式与灵活的权限控制模型。
|
3月前
|
SQL 容灾 Nacos
Seata的部署和集成
本文介绍Seata分布式事务框架的部署与微服务集成。首先下载并解压Seata Server,修改配置文件application.yml,并在Nacos中配置seataServer.properties及数据库信息。创建seata数据库并运行SQL脚本初始化事务表。启动TC服务后,注册至Nacos。各微服务引入Seata依赖,配置application.yml连接TC。为实现高可用,搭建多节点TC集群,通过Nacos统一管理事务组映射,实现异地容灾与动态切换。微服务从Nacos读取client.properties,灵活绑定TC集群,提升系统稳定性与可维护性。(238字)
|
3月前
|
测试技术 数据处理 微服务
基于稳定版量化交易系统开发案例设计的功能需求实现
在数字化时代,量化交易系统需兼顾高效性与稳定性。本文聚焦稳定版系统开发,探讨案例设计与功能需求,涵盖微服务架构、实时行情、信号生成、风控等核心环节,为构建精准、可靠的量化交易体系提供实践指导。
|
3月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细介绍Nacos作为配置中心的实现原理与实践,涵盖配置管理、热更新、共享配置及优先级规则,并演示集群搭建与高可用部署,助力微服务架构下配置的集中化、动态化管理。
 Nacos配置中心
|
3月前
|
存储 缓存 负载均衡
Nacos注册中心
本文介绍Nacos的安装部署、服务注册与发现、负载均衡策略、权重控制、环境隔离及实例类型等内容,涵盖从入门到实战的核心知识点,帮助开发者快速掌握Nacos在微服务架构中的应用。
 Nacos注册中心
|
3月前
|
安全 Java Spring
过滤器原理分析
本文详解Spring Security过滤器链的加载原理,通过DelegatingFilterProxy、FilterChainProxy到SecurityFilterChain,揭示十五个过滤器如何自动装配并生效,帮助理解框架底层机制,为自定义认证页面打下基础。
|
3月前
|
消息中间件 算法 网络协议
7.选举机制源码分析
本文深入解析了ZooKeeper中FastLeaderElection的源码实现,涵盖其核心类结构、选举流程及关键函数。重点分析了Notification与ToSend消息机制、WorkerReceiver和WorkerSender的通信过程,并详细阐述了lookForLeader等核心方法如何通过逻辑时钟、选票PK和过半判定完成Leader选举。
 7.选举机制源码分析

热门文章

最新文章