用户自定义认证前端页面

简介: 本示例展示Spring Security基础配置:前端引入登录页,后端新增接口并配置安全规则。通过SecurityConfig实现请求认证、表单登录、自定义跳转等,启动后访问/demo/index自动跳转登录页,验证成功进入欢迎页面。(239字)

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 Kafka
消息中间件RabbitMQ(基础)
本章节介绍微服务架构中的消息中间件MQ,重点讲解RabbitMQ的使用。内容涵盖同步与异步通信的区别、RabbitMQ的安装与基本结构、SpringAMQP的集成与应用,以及不同交换机类型(Fanout、Direct、Topic)的消息路由机制,并通过代码示例演示消息发送与接收流程,帮助理解解耦、削峰、异步处理等核心优势。(239字)
178 0
|
3月前
|
消息中间件 Shell Linux
RabbitMQ部署指南
本文介绍了RabbitMQ的单机与集群部署方案,涵盖Docker环境下镜像安装、DelayExchange插件配置及三种集群模式(普通、镜像、仲裁队列)的实现。重点讲解了镜像模式的高可用特性与仲裁队列的自动副本管理,提升消息系统的可靠性与扩展性。
208 0
RabbitMQ部署指南
|
3月前
|
存储 缓存 Java
SpringCloud(2024)
本文介绍如何在Spring项目中实现自定义注解,结合AOP与过滤器用于日志、权限控制等场景。通过@Target、@Retention等元注解定义注解,利用AOP拦截方法执行,或通过过滤器实现登录验证,提升代码可读性与复用性。
106 0
|
3月前
|
自然语言处理 Java Shell
安装ES、Kibana、IK
本文介绍如何通过Docker部署单节点Elasticsearch与Kibana,并配置IK分词器。内容涵盖网络创建、镜像加载、容器运行、插件安装及分词器扩展词典与停用词设置,同时提供常见启动报错的解决方案,助力快速搭建中文搜索环境。
171 0
|
3月前
|
负载均衡 Java Nacos
Gateway服务网关
网关是微服务架构的统一入口,实现请求路由、权限控制、限流及负载均衡。SpringCloud Gateway基于WebFlux,性能优于Zuul。支持断言与过滤器工厂,可自定义全局过滤器,解决跨域等问题,是微服务流量管控的核心组件。
313 0
|
3月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本章深入讲解Nacos配置中心实战,涵盖配置管理、热更新、共享配置及优先级规则,并通过搭建Nacos集群实现高可用部署,结合Spring Cloud Alibaba实现微服务动态配置,提升系统可维护性与稳定性。
184 0
|
3月前
|
存储 安全 前端开发
认识OAuth2.0
OAuth2.0是一种开放授权协议,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。其核心通过令牌(token)机制实现权限控制,广泛用于服务间资源共享与单点登录。主要包含四种模式:授权码模式(最安全,适用于Web应用)、简化模式(适用于无后端的前端应用)、密码模式(需高度信任的服务间使用)和客户端模式(服务直连,与用户无关)。不同场景可灵活选用。
142 0
|
3月前
|
消息中间件 存储 Unix
Mac系统安装教程
RabbitMQ 是一个开源的消息代理,实现AMQP协议,支持异步通信与解耦。具备高可靠、灵活路由、持久化等特性,广泛用于分布式及微服务架构中。
118 0
Mac系统安装教程
|
3月前
|
SQL Nacos 数据库
练习
本课程围绕微服务核心组件展开,涵盖Nacos配置中心、Feign远程调用及Gateway网关搭建。通过实践掌握配置管理、服务通信优化与统一网关鉴权,提升系统可维护性与架构设计能力,强化代码整合与主动优化经验。
练习
|
3月前
|
关系型数据库 MySQL Nacos
练习
本作业旨在掌握Docker部署微服务中间件及完整工程的流程,涵盖Nacos、MySQL、耗材中心、医生站与网关服务的安装、配置与验证,通过Dockerfile和docker-compose实现多服务协同运行。