自定义认证前端页面

简介: 本文介绍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控制台打印

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

相关文章
|
1天前
|
敏捷开发 Dubbo Java
需求开发人日评估
本文介绍敏捷开发中工时评估的关键——人日估算方法,涵盖开发、自测、联调、测试及发布各阶段周期参考,并提供常见需求如增删改查、导入导出、跨服务调用等的典型人日标准,助力团队科学规划迭代进度。(238字)
|
19小时前
|
SQL Java 数据库连接
Activity代码实现
本教程通过创建BPMN流程、部署定义、启动实例、查询与完成任务,演示Activiti工作流引擎的基本使用。涵盖流程定义部署、任务操作及数据库表变化,帮助快速掌握工作流开发核心步骤。
|
19小时前
|
存储 API 数据库
Activiti框架拓展
Activiti表结构以ACT_开头,分五类:ACT_RE_*存流程定义等静态资源;ACT_RU_*存运行时实例、任务等数据;ACT_HI_*存历史记录;ACT_ID_*管理用户组信息;ACT_GE_*处理通用数据。各表协同支持流程引擎高效运作。
|
19小时前
|
存储 JSON Dubbo
Soul数据库设计
本插件采用数据库设计,存储插件、选择器、规则及其关联关系。核心四表:plugin、selector、rule、condition,体现Soul三大核心:插件、规则、选择器。支持多层级匹配,适用于Dubbo、SpringCloud等协议,灵活配置路由与处理逻辑。(238字)
|
19小时前
|
Java 关系型数据库 MySQL
Activiti工程搭建
本文介绍如何在Idea中创建Maven工程并安装Activiti插件,包含插件下载、版本兼容性修复及验证步骤,同时引入SpringBoot、MySQL、MyBatis与Activiti相关依赖,配置数据源与流程引擎,完成基础环境搭建,适用于工作流项目快速开发。
|
19小时前
|
缓存 Dubbo Java
什么是API网关
API网关是一种架构思想,用于统一接收外部请求并转发至后端服务,实现协议转换、路由、鉴权、限流、熔断降级等功能。通过网关,可简化客户端调用,提升系统安全性与可维护性。常见实现如Kong、Zuul、Spring Cloud Gateway等,广泛应用于微服务架构中,支持异步处理、全链路监控与多维度流量控制。
|
19小时前
|
缓存 前端开发 安全
数据同步原理
Soul 网关通过推拉模式从配置服务同步数据,支持 WebSocket、HTTP 长轮询和 Zookeeper 三种方式。1.x 版本基于 Zookeeper 推送,2.x 版本默认采用 HTTP 长轮询(借鉴 Apollo/Nacos),实现秒级更新。管理后台变更配置后,通过 EventPublisher 发布事件,根据 sync.strategy 策略将变更推送给网关并更新本地缓存。WebSocket 主动推送全量+增量数据;Zookeeper 利用 watch 机制监听节点变化;HTTP 长轮询则通过异步 Servlet + BlockingQueue 实现准实时同步,保障配置一致性。
|
19小时前
|
安全 Java 应用服务中间件
实现权限管理的技术
权限管理技术选型需综合考量。主流方案如Apache Shiro轻量易用,但安全维护弱;Spring Security功能强大、防护全面,但配置复杂;自定义ACL契合业务但通用性差。多数技术基于ACL或RBAC模型封装,选型应结合项目实际,权衡优劣,避免过度设计。
|
19小时前
|
Dubbo JavaScript 前端开发
Soul网关接入与验证
本文介绍如何将服务提供者与消费者接入Soul网关,涵盖pom依赖、Controller注解(@SoulSpringMvcClient)、配置文件参数说明(如adminUrl、contextPath、full模式等),并支持HTTP与Dubbo双协议。通过zookeeper注册,结合soul-admin与soul-bootstrap启动,完成服务注册与网关路由验证,附完整代码与测试示例。