自定义认证前端页面

简介: 本文介绍Spring Security基础配置:通过定义接口返回欢迎信息,配置SecurityConfig实现权限控制,所有请求需认证,启用表单登录并指定登录页、处理路径及跳转逻辑,禁用CSRF。启动后访问接口自动跳转登录页,输入默认用户信息即可成功访问受保护资源。

前端代码

● 拷贝上述路径到下述位置,注意没有对应文件夹则需要手动创建

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

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

相关文章
|
存储
设备树dtb文件的格式分析
设备树dtb文件的格式分析
802 0
|
9月前
|
消息中间件 NoSQL Java
SpringCloud
本课程基于黑马程序员2025版SpringCloud实战教学,聚焦高频面试与实际应用,涵盖微服务、RabbitMQ、Redis高级、ElasticSearch等核心内容,结合项目实战与AI模块优化,助力掌握企业级开发技能。资料详尽,尊重原创,侵权必究。
|
9月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍如何使用Arthas排查线上Java应用CPU占用过高问题,结合thread、watch、jad等指令定位阻塞线程与异常代码,实现无需重启服务的热更新修复,并通过profile生成火焰图进行性能分析,提升线上问题排查效率。
|
9月前
|
消息中间件 Java 数据库
异步消息组件MQ高级
本文详解RabbitMQ消息可靠性保障机制,涵盖生产者重试、确认机制(Confirm/Return)、消息持久化及消费可靠性。通过配置重试、回调处理与失败消息表结合定时任务重发,确保消息不丢失,提升系统稳定性。
|
9月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
本文介绍如何使用MyBatis-Plus(MP)简化单表增删改查操作。通过引入MP依赖并继承BaseMapper,可省略重复SQL代码,实现CRUD功能自动化。结合@TableName、@TableId等注解处理表字段映射异常,并利用QueryWrapper、UpdateWrapper构建复杂查询与更新条件。同时支持自定义SQL与条件构造器结合使用,提升开发效率与代码可读性。
|
9月前
|
存储 算法 BI
xxljob本地运行
本文介绍XXL-JOB分布式任务调度的使用教程。包含源码获取、服务端部署(数据库导入、配置修改、启动访问)、客户端运行与执行器注册,以及调度任务配置和路由策略详解。通过实际操作演示任务创建、参数设置、手动执行与日志查看,帮助开发者快速掌握XXL-JOB核心功能,实现定时任务的可视化管理和高效调度。(238字)
|
5月前
|
SQL 存储 关系型数据库
MySQL 生产级备份与恢复全攻略:全量 / 增量 / 逻辑 / 物理备份深度拆解 + 误删数据秒级恢复实战
本文系统讲解MySQL备份与恢复体系,涵盖全量/增量、逻辑/物理备份的底层原理与核心差异;详解mysqldump、mydumper、XtraBackup等工具的生产级实战;提供误删数据的多场景快速恢复方案(闪回、延迟从库、回收站);并附Java备份管理模块完整实现。
672 2
|
10月前
|
数据采集 存储 安全
一文讲清数据要素,数据资产,数据治理和数字资产
本文系统梳理了数据要素、数据资产、数据治理与数字资产四大核心概念。数据要素确立数据作为基础生产要素的战略地位;数据资产是企业可控制并带来经济利益的数据资源;数据治理是保障数据质量与安全的管理框架;数字资产则是涵盖数据资产在内的所有数字化有价值资产的统称。厘清四者关系,构建清晰数据认知体系,助力企业高效决策与价值实现。
|
Python
Python编程基石:整型、浮点、字符串与布尔值完全解读
本文介绍了Python中的四种基本数据类型:整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。整型表示无大小限制的整数,支持各类运算;浮点型遵循IEEE 754标准,需注意精度问题;字符串是不可变序列,支持多种操作与方法;布尔型仅有True和False两个值,可与其他类型转换。掌握这些类型及其转换规则是Python编程的基础。
854 33

热门文章

最新文章