springboot 访问html_Spring Boot中使用Spring Security进行安全控制

我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop、拦截器实现,也可以通过框架实现(如:Apache Shiro、Spring Security)。

本文将具体介绍在Spring Boot中如何使用Spring Security进行安全控制。

准备工作

首先,构建一个简单的Web工程,以用于后续添加安全控制,也可以用之前Chapter3-1-2做为基础工程。若对如何使用Spring Boot构建Web应用,可以先阅读《Spring Boot开发Web应用》一文。

Web层实现请求映射

767cab96569a4cae9bd48497b9237c94
  • /:映射到index.html
  • /hello:映射到hello.html

实现映射的页面

  • src/main/resources/templates/index.html
7a25bf72b2194398a52aa1a77295a127
  • src/main/resources/templates/hello.html
60dac88283ee4d408196b7c44ffcfc5d

可以看到在index.html中提供到/hello的链接,显然在这里没有任何安全控制,所以点击链接后就可以直接跳转到hello.html页面。

整合Spring Security

在这一节,我们将对/hello页面进行权限控制,必须是授权用户才能访问。当没有权限的用户访问后,跳转到登录页面。

添加依赖

在pom.xml中添加如下配置,引入对Spring Security的依赖。

25591efbcdb149fbbf733d81b93d74be

Spring Security配置

创建Spring Security的配置类WebSecurityConfig,具体如下:

7861196ec70841198d2acea543451d1a
  • 通过@EnableWebSecurity注解开启Spring Security的功能
  • 继承WebSecurityConfigurerAdapter,并重写它的方法来设置一些web安全的细节
  • configure(HttpSecurity http)方法
  • 通过authorizeRequests()定义哪些URL需要被保护、哪些不需要被保护。例如以上代码指定了/和/home不需要任何认证就可以访问,其他的路径都必须通过身份验证。
  • 通过formLogin()定义当需要用户登录时候,转到的登录页面。
  • configureGlobal(AuthenticationManagerBuilder auth)方法,在内存中创建了一个用户,该用户的名称为user,密码为password,用户角色为USER。

新增登录请求与页面

在完成了Spring Security配置之后,我们还缺少登录的相关内容。

HelloController中新增/login请求映射至login.html

a2cb8e6d991547f0915fd780f3699adc

新增登录页面:src/main/resources/templates/login.html

e8c9b5f25e1b4f42bb26fac33b15718c

可以看到,实现了一个简单的通过用户名和密码提交到/login的登录方式。

根据配置,Spring Security提供了一个过滤器来拦截请求并验证用户身份。如果用户身份认证失败,页面就重定向到/login?error,并且页面中会展现相应的错误信息。若用户想要注销登录,可以通过访问/login?logout请求,在完成注销之后,页面展现相应的成功消息。

到这里,我们启用应用,并访问http://localhost:8080/,可以正常访问。但是访问http://localhost:8080/hello的时候被重定向到了http://localhost:8080/login页面,因为没有登录,用户没有访问权限,通过输入用户名user和密码password进行登录后,跳转到了Hello World页面,再也通过访问http://localhost:8080/login?logout,就可以完成注销操作。

为了让整个过程更完成,我们可以修改hello.html,让它输出一些内容,并提供“注销”的链接。

70ace0e4ffec4c0db22ec6e0e279b5c6

本文通过一个最简单的示例完成了对Web应用的安全控制,Spring Security提供的功能还远不止于此,更多Spring Security的使用可参见Spring Security Reference。

a1bed9d2164a44458d8a38f464cca752
springboot 重定向html_Spring Boot整合Spring Security 本示例基于spring boot1.5.9.RELEASE在Spring boot项目中使用 SpringSecurity实现权限管理很简单,只需要引入依赖,然后编写授权和认证的相关自定义规则即可。创建一个web的Spring Boot项目来整合Spring Security,并以此为基础进行讲解。下面具体演示一下。(1)相关依赖<dependency> <gro... 阅读详情

相关推荐

Springboot+Spring Security+Thyme+JPA实现用户注册登录

文章目录 前言 准备 Model层 服务层 Web层 认证配置 视图层 运行验证 踩过的坑 前言 网络上关于Spring Security实现登录注册的文章很多,但大多存在2个问题,一是讲的不清不楚,看完文章还是没明白怎么使用;二是比较陈旧。本文在前文基础上做了些的改进,尽量讲清楚如何使用。(请注意,本文是入门教程,只讲如何使用,不涉及源码分析) 准备 IDEA Spring Boot 2....

Going to Fly 3472

Springboot 使用拦截器完成请求重定向

将HTTP请求地址重定向到请求体内传入的请求接口名。

weixin_42415751的博客 2753

SpringBoot登录认证实战:基于Session与Spring Security的完整实现

用户认证与授权是Web应用安全的核心基础,它决定了用户身份的识别与访问权限的控制。其核心原理在于验证用户凭证并建立可信的会话状态。在技术实现上,Spring Security作为Java生态中权威的安全框架,通过过滤器链机制,为开发者提供了一套声明式的安全解决方案,极大地简化了密码加密、权限控制、CSRF防护等复杂功能的开发。这套方案尤其适用于传统的单体Web应用,能够有效保障业务系统的安全基线。本文聚焦于SpringBoot项目中经典的Session-Cookie认证模式,详细解析了如何整合Spring

weixin_34129696的博客 327

Spring Boot拦截请求进行重定向跳转

先引入spring-boot-starter-web配置,如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 编写拦截处理handler package com.xpb.xpbweixin.config; import

动哒APP—运动健康科技提供商 1744

Spring Boot+Spring Security:登出和403处理 - 第8篇

说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)hibernate 5.2.17.Final (6)MySQL Driver 5.1.47 (7)MySQL 8.0.12 需求缘起 现在在页面当中还无法进行退...

悟纤学院 2万+

使用 Python+PaddleOCR 实现图文识别:从入门到精通

在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等。PaddleOCR 是百度开源的一款强大的 OCR 工具包,它集成了多种先进的算法和模型,能够高效准确地进行图文识别。本文将详细介绍如何使用 PaddleOCR 和 Python 实现图文识别,并给出具体的代码和步骤。

爱搬砖的程序猿 5473

Spring boot自定义拦截器和拦截器重定向配置简单介绍~!

大家好:   本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题。 开发工具:jdk1.8 idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Spring boot+jsp的简单项目,结构目录如下: 2.创建filter文件夹,在文件夹创建CheckFilter.java文件,继承拦截器基础接口HandlerInterce...

心有猛虎,是只大喵的博客 2288

从零开始安装pytorch(包含GPU和CPU版本的安装)

Pytorch是。

qiaoxinyu1989的博客 8万+

springboot 添加拦截器之后中文乱码_SpringBoot开发单体应用(二)

如果你还没看上一篇文章《SpringBoot开发单体应用(一)》,建议先去看一下。这篇文章是接着上一篇文章的内容来讲的。页面国际化国际化,英文名叫internationalization,因为中间有18个字母,又叫i18n。 我们平时工作或者开发一些网站时,尤其是国际网站,国际化是必须要做的事情。准备工作首先需要保证配置文件的编码格式是UTF-8,否则可能出现页面乱码的情况。选择File->...

weixin_36166752的博客 806

Win10离线安装.net framework 3.5全攻略:镜像匹配与DISM命令实战(附错误0x8024402c解决方案)

本文详细解析了在Windows 10系统中离线安装.NET Framework 3.5的完整流程与核心难点。重点阐述了如何精准匹配系统版本与安装镜像,并提供了使用DISM命令进行离线安装的实战步骤。针对常见的错误代码0x8024402c,文章深入剖析了其根源,并给出了系统级的排查与解决方案,特别适合企业内网运维人员参考。

weixin_29299807的博客 657

十一种室内定位传感器方案汇总介绍与对比(机器人、物联网领域)

室内定位传感器方案汇总 目录 室内定位传感器方案汇总 1、定位方案概述 1.1、内定位系统有最基本的5种算法: 1.2、常用的室内定位技术主要包括以下几种: 1.3、定位理论 1.4、不同的定位方案对比 2、各种定位方案详细介绍 2.1、单线激光定位 2.2、多线激光定位: 2.3、视觉定位: 2.4、基于射频识别(RFID)技术室内定位 2.4.1、RFID标签(不涉及...

JK-Cool的博客 3万+

html页面访问安全控制,Spring Boot如何使用Spring Security进行安全控制

我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop、拦截器实现,也可以通过框架实现(如:Apache Shiro、spring Security)。本文将具体介绍在Spring Boot中如何使用Spring Security进行安全控制。准备工作首先,构建一个简单的Web工程,以用于后续添加安全控制...

weixin_42510271的博客 406

Android布局基础与UI设计入门:打造精美应用界面

恭喜你!现在你已经掌握了Android UI开发的基础知识,包括各种布局类型、常用控件的使用以及一些UI优化技巧。这些知识将帮助你设计出既美观又实用的Android应用界面。

m0_65382359的博客 2054

Spring Boot中使用Spring Security进行安全控制

一 点睛 我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop、拦截器实现,也可以通过框架实现(如:Apache Shiro、Spring Security)。 本篇将具体介绍在Spring Boot中如何使用Spring Security进行安全控制。 二 实战 1 引入相关依赖 &lt;...

实践求真知 2572

Selenium ChromeDriver反爬与性能优化实战指南

ChromeDriver作为Selenium的核心驱动,本质是浏览器自动化执行引擎,其默认行为会暴露大量JS运行时指纹(如navigator.webdriver、window.chrome),极易被前端反爬系统识别;同时因进程管理粗放、渲染等待机制僵化,导致内存泄漏、僵尸进程和高并发下稳定性崩塌。本文围绕真实生产场景,系统解析浏览器指纹伪造原理、进程级资源管控策略、基于页面状态的智能等待范式,并提供Docker容器化、K8s弹性扩缩与Prometheus可观测性落地路径,助力开发者将ChromeDriver

weixin_29762151的博客 1258

炼金术士的试炼:2026年企业信用信息公示系统极验五维反爬下的Python数据博弈与破局之道

企业信用信息公示系统(以下简称“公示系统”)作为国家市场监督管理总局权威发布平台,承载着全国亿万市场主体的登记、许可、处罚等核心信用数据。对于金融风控、市场分析、商业尽职调查等领域,这些数据具有不可替代的黄金价值。然而,公示系统在2025年至2026年间进行了数次史诗级的安全加固,构建了包含动态令牌、极致混淆的JavaScript混淆、无感行为指纹、智能语义验证码以及WebAssembly防护在内的“五维反爬长城”。

2201_76125261的博客 345

Spring Boot整合Spring Security

Spring Security入门教程,springboot整合Spring Security

沐雨橙风ιε的博客 1294

Oracle EBS的帐套由“4C”构成,而华为MetaERP将其发展为“6C”

华为MetaERP从OracleEBS的"4C"架构升级为"6C",实现核算理念革新。核心突破在于将会计科目、核算维度和核算单元解耦,形成"科目表+维度库"的灵活架构。新架构优势显著:1)科目回归会计本质,管理维度独立扩展;2)支持无限维度的精细化核算;3)实现数据权限隔离和内部交易自动化;4)采用元数据驱动设计,为AI应用奠定基础。这一平台化架构解决了大型企业在全球化、多元化发展中的核算难题,相比传统架构具有更强的灵活性和扩展性。

金牌架构师 201

Spring Boot教程(二十六)使用Spring Security安全控制

准备工作 首先,构建一个简单的Web工程,以用于后续添加安全控制,也可以用之前Chapter3-1-2做为基础工程。若对如何使用Spring Boot构建Web应用,可以先阅读《Spring Boot开发Web应用》一文。 Web层实现请求映射 @Controller public class HelloController { @RequestMapping(...

dhpu15386的博客 141

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

深入解析 Spring Security:构建安全的 Spring Boot 应用

Spring Security 是一个功能强大且灵活的安全框架,能够为 Spring Boot 应用提供全面的安全保护。通过简单的配置,我们可以实现用户认证、授权、会话管理和防止常见攻击等功能。同时,Spring Security 也支持高级特性,如自定义用户详情服务、JWT 支持等,以满足复杂的安全需求。

Myqijiahai的博客 1483

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

spring boot中使用spring-security案例

http://localhost:8080/home:普通用户和管理员都可访问。访问 http://localhost:8080/login 进入登录页面。http://localhost:8080/admin:仅管理员可访问。用户名:user,密码:password。用户名:admin,密码:admin。登出:点击页面中的 Logout。

weixin_42289273的博客 976

Spring Security实现OAuth2协议及实战

OAuth2是目前最流行的授权协议,用来授权第三方应用,获取用户数据。举个例子:快递员想要进入小区,有3种方式。1是业主远程开门,2是业主告诉门禁密码,3是使用令牌(Oauth2)。如图:令牌和密码的区别:令牌相当于火车票,密码相当于是钥匙。令牌是短期的,自动失效。密码是长期有效。令牌是可以撤销的,撤销立即生效。密码一般不允许他们撤销。令牌有权限范围,如车票座位为10车A15座。密码一般是完整权限。第三方登录演示(网易云客户端利用QQ扫码登录)

qq_43372633的博客 3005

springboot 2.0 集成 Spring Security进行安全控制

添加依赖 <!-- spring security 权限框架依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependenc...

weixin_43839457的博客 319

Springboot 集成Spring Security教程 (一)

Springboot 集成Spring Security教程 (一) 写在前面: 本文只做 Springboot 集成 security 的集成教程, 概念性的东西自行Google 官网: https://spring.io/projects/spring-security 我的博客: http://www.izuul.com 创建Springboot项目 推荐使用 idea, 本文就是使用 i...

nabi 3204

Spring Boot + Spring Security + Thymeleaf 简单教程

Spring Security 基本原理 Spring Security 过滤器链 Spring Security实现了一系列的过滤器链,就按照下面顺序一个一个执行下去。 ....class 一些自定义过滤器(在配置的时候你可以自己选择插到哪个过滤器之前),因为这个需求因人而异,本文不探讨,大家可以自己研究 UsernamePasswordAithenticationFilter.class Spring Security 自带的表单登入验证过滤器,也是本文主要使用的过滤器 BasicAuthentica

公众号-老炮说Java 1026

springsecurity OAuth2.0-第5章 springboot整合 spring security自定义登录页面

一 自定义认证页面 1.1 说明 1. 如果用户没有自定义登录页面,spring security 默认会启动自身内部的登录页面,尽管自动生成的登录页面很方便 快速启动和运行,但大多数应用程序都希望定义自己的登录页面。 1.2 自定义登录页面 在新建一个webapp目录,和resouces目录,平级,将login.jsp页面考配到这个页面下 页面代码: <%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-.

健康平安的活着的专栏 4586
上一篇: 郑州学python_郑州Python基础知识点学习之内置类型
下一篇: python怎么写爬虫脚本_Python爬虫脚本
weixin_39777464
博客等级 码龄9年 37粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值