1.自定义认证前端页面

简介: 本示例展示Spring Security基础配置:前端引入登录页,后端新增接口并配置安全规则。通过SecurityConfig实现请求认证、表单登录、自定义跳转路径,并禁用CSRF。启动后访问/demo/index自动跳转登录页,输入用户名密码后验证权限并返回响应内容,实现简单安全控制。(238字)

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

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

相关文章
|
2月前
|
运维 安全 Devops
生产环境缺陷管理
git-poison基于go-git实现分布式bug追溯,解决多分支开发中bug漏修、漏发等协同难题。通过“投毒-解毒-银针”机制,自动化卡点发布流程,降低沟通成本,避免人为失误,已在大型团队落地一年,显著提升发布安全与效率。
|
2月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强工具,简化单表CRUD操作,无需编写XML即可实现增删改查。通过继承BaseMapper、使用Wrapper条件构造器、分页插件等功能,大幅提升开发效率。支持自定义SQL、逻辑删除、枚举与JSON处理,并提供代码生成器和通用Service层封装,广泛应用于企业级项目中。
|
2月前
|
Java 测试技术 Linux
生产环境发布管理
本文介绍大型团队如何通过自动化部署平台实现多环境(dev/test/pre/prod)发布管理,涵盖各环境职责、基于Jenkins+K8S的CI/CD流程、分支可视化操作、容器化部署机制及日志排查方案,提升发布效率与系统稳定性。
|
2月前
|
存储 负载均衡 算法
负载均衡算法
负载均衡算法包括随机、轮询、最小活跃数、源地址哈希与一致性哈希。随机可加权提升性能利用,轮询实现顺序调用,最小活跃数动态分配请求,源地址哈希保证IP固定路由,一致性哈希减少节点变动影响,适用于分布式系统中高效流量调度。(239字)
|
2月前
|
Linux 数据安全/隐私保护 虚拟化
虚拟机安装(CentOS7)
准备CentOS7镜像及VMware虚拟机软件,可通过提供的百度云链接下载。使用VMware创建新虚拟机,参考指定教程完成安装,默认登录用户为root,密码由用户自设,详细步骤见知乎指南。(238字)
|
2月前
|
SQL 安全 关系型数据库
了解SQL注入
SQL注入是利用Web应用输入验证缺陷,将恶意SQL代码注入数据库查询的攻击方式。可导致身份绕过、数据泄露、篡改甚至系统命令执行。常见于登录框等用户输入场景,通过构造特殊字符如单引号、注释符改变SQL逻辑。防御需结合输入验证、参数化查询与错误信息管控,开发与运维协同防护。
|
2月前
|
敏捷开发 Dubbo Java
需求开发人日评估
本文介绍敏捷开发中工时评估的关键——人日估算方法,涵盖开发、自测、联调、测试及发布各阶段周期参考,并提供常见需求如增删改查、导入导出、跨服务调用等的典型人日参考,助力团队科学规划迭代。
|
2月前
|
程序员
SpringCloud(2024)
本节内容源自传智教育·黑马程序员,作者仅作学习总结与拓展,旨在传播优质教学资源。内容分重点掌握(实用、高级、面试篇)和学术涉猎两部分,兼顾核心技能与知识广度,尊重原创,侵权必究。
|
2月前
|
XML JSON Java
什么是RESTful
RESTful是一种基于资源的API设计规范,主张用URI标识资源,HTTP动词操作资源,实现统一、标准的接口风格。它解决了传统接口路径混乱、行为不一致的问题,具有结构清晰、易于理解与扩展的优势,提升系统可维护性与团队协作效率。
|
2月前
|
存储 数据库
数据库设计三范式
第一范式要求字段原子性,不可再分;第二范式消除部分依赖,主键确定所有非主键;第三范式消除传递依赖。三者旨在减少数据冗余、提升维护效率,但实际设计需结合业务权衡,不必拘泥范式。