自定义认证前端页面

简介: 本文介绍Spring Security基础配置:通过前端页面与后端接口联动,实现登录认证。后端新增接口与安全配置类,配置表单登录、权限控制及跳转逻辑,禁用CSRF,启动后访问指定路径自动跳转登录页,输入信息后成功获取响应内容,完成安全验证流程。(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控制台打印

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

相关文章
|
3月前
|
存储 缓存 Java
自定义注解
本文介绍如何在Spring项目中实现自定义注解,结合AOP与过滤器用于日志、权限控制等场景。通过@Target、@Retention等元注解定义注解,利用AOP拦截方法执行,或通过过滤器实现登录验证,提升代码可读性与复用性。
|
3月前
|
存储 安全 小程序
认识OAuth2.0
OAuth2.0是开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。包含授权码、简化、密码和客户端四种模式,广泛用于服务间资源调用与单点登录场景。
|
3月前
|
Java 关系型数据库 MySQL
OAuth2.0实战案例
本项目基于Spring Boot与Spring Cloud构建,实现OAuth2四种授权模式。通过父工程统一版本管理,分别搭建资源服务与授权服务模块,集成MyBatis与MySQL实现用户及客户端信息持久化,完成认证授权全流程。
|
3月前
|
前端开发 程序员
常见注解及使用说明
本文介绍SpringMVC中@RequestMapping注解的作用及原理,通过注解将HTTP请求映射到控制器方法,实现前后端接口路径对应。并简述@GetMapping等派生注解的使用,帮助快速掌握接口定义方式。
|
3月前
|
SQL 安全 关系型数据库
了解SQL注入
SQL注入是一种通过恶意构造输入数据篡改数据库查询的攻击方式,可导致身份绕过、数据泄露、篡改甚至系统命令执行。其根源在于应用对用户输入验证不足,动态拼接SQL语句。OWASP将其列为头号Web安全威胁。防御需结合输入验证、参数化查询及IPS等多层机制,确保数据与代码分离,阻断攻击路径。
|
3月前
|
存储 数据库
数据库设计三范式
数据库三范式是设计表结构的指导原则:第一范式要求字段原子性,不可再分;第二范式要求消除部分依赖,一张表只描述一件事;第三范式要求消除传递依赖。虽有助于减少数据冗余和更新异常,但实际应用中需结合业务权衡,不必严格遵循。
|
3月前
|
存储 负载均衡 算法
负载均衡算法
本文介绍负载均衡常用算法:随机、轮询及其加权版本,最小活跃数动态分配请求,源地址哈希确保IP固定路由,一致性哈希提升节点变动时的稳定性。各算法适用于不同场景,如性能均等、权重差异、实时负载或请求粘性需求,助力系统高效稳定运行。(238字)
|
3月前
|
缓存 Java Nacos
@RefreshScope热更新原理
@RefreshScope通过组合注解实现配置热更新,核心在于@Scope("refresh")。其原理是将Bean加入自定义缓存,配置变更时清空缓存并触发Spring重新创建Bean实例,结合Environment更新,使@Value等属性动态刷新。整个过程依赖代理机制与生命周期重建,实现无需重启的应用配置实时生效。
|
3月前
|
JSON 缓存 前端开发
什么是跨域
CORS需浏览器和服务器共同支持,所有现代浏览器均已兼容(IE≥10)。通信由浏览器自动完成,开发者无需特殊处理。请求分为简单和非简单两类,前者直接发送Origin头,后者需预检。服务器通过响应头如Access-Control-Allow-Origin等控制跨域权限。相比仅支持GET的JSONP,CORS更灵活强大。
|
3月前
|
存储 Java 关系型数据库
微服务概述
本文介绍单体与微服务架构区别,阐述微服务定义、特征及优缺点,涵盖技术选型、部署方案与学习路径,帮助理解微服务演进逻辑及其分布式设计精髓,为构建高内聚、低耦合系统提供理论支撑。

热门文章

最新文章