自定义认证前端页面

简介: 本文介绍Spring Security前后端整合配置流程:前端引入login.html,后端新增接口与安全配置类,通过formLogin自定义登录页面、参数及跳转,禁用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月前
|
存储 消息中间件 开发框架
应用架构图
技术架构是将业务需求转化为技术实现的关键过程,涵盖分层设计、技术选型与系统集成。本文详解单体与分布式架构,包括展现层、业务层、数据层及基础层的职责,以及应用间调用关系、外部系统交互与边界划分,为构建清晰的技术体系提供指导。
 应用架构图
|
3月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文介绍如何使用Nacos实现配置中心及集群搭建。涵盖配置管理、热更新、共享配置、优先级规则,并通过Nginx实现高可用集群部署,提升微服务架构下配置的动态管理与系统稳定性。
Nacos配置中心
|
3月前
|
存储 Dubbo API
SpringCloud工程部署启
本文介绍SpringCloud微服务工程的搭建与部署,涵盖项目创建、数据库配置、服务启动及远程调用实现,通过RestTemplate完成服务间通信,帮助理解微服务拆分与协作机制。
SpringCloud工程部署启
|
3月前
|
存储 JSON NoSQL
MongoDB常用命令
本文介绍MongoDB数据库操作,包括创建与删除数据库、集合的显式与隐式创建、文档的增删改查、批量操作、分页查询及排序。以文章评论系统为例,演示数据存储结构及常用命令,涵盖insert、update、remove、find、limit、skip、sort等方法,帮助掌握MongoDB基本使用。
|
3月前
|
SQL 运维 分布式计算
如何做好SQL质量监控
SLS推出用户级SQL质量监控功能,集成于CloudLens for SLS,提供健康分、服务指标、运行明细、SQL Pattern分析及优化建议五大维度,助力用户全面掌握SQL使用情况,提升日志分析效率与治理能力。
如何做好SQL质量监控
|
3月前
|
存储 缓存 负载均衡
Nacos注册中心
本文介绍Nacos的安装部署、整合注册中心、服务分级模型、负载均衡策略、权重控制、环境隔离及实例类型,涵盖从入门到实战的核心知识点,助力掌握微服务架构中的服务发现与配置管理。
 Nacos注册中心
|
3月前
|
运维 Devops 开发工具
生产环境缺陷管理
git-poison基于go-git实现分布式bug追踪,解决多分支开发中bug漏修、漏发问题。通过“投毒-解毒-银针”机制,自动化卡点发布流程,降低协同成本,提升发布安全性与效率,已在大型团队落地应用。
生产环境缺陷管理
|
3月前
|
负载均衡 算法 架构师
Ribbon负载均衡
本文深入讲解Spring Cloud中Ribbon实现客户端负载均衡的原理,涵盖负载均衡概念、分类、常用算法,详解@LoadBalanced注解作用机制,演示自定义策略与饥饿加载优化,并对比服务端负载均衡,帮助读者全面理解微服务间调用的流量分发技术。
|
3月前
|
Java Nacos Maven
Eureka服务注册与发现
本节介绍Spring Cloud中Eureka注册中心的搭建与使用,完成服务注册与发现功能,并通过user-service和order-service实例演示多节点部署及动态调用,为后续Nacos替换Eureka奠定基础。
 Eureka服务注册与发现
|
3月前
|
存储 运维 Java
微服务概述
本文对比单体与微服务架构,解析微服务定义、优缺点及技术实现。微服务通过拆分业务、独立部署、轻量通信提升系统扩展性与维护性,虽带来运维与分布式事务挑战,但仍是现代应用架构演进方向。
 微服务概述

热门文章

最新文章