1.工程搭建与验证

简介: 本文介绍如何使用阿里云脚手架快速搭建Spring Boot工程,并整合Spring Security。通过选择依赖、生成项目、导入IDE,完成基础安全配置,验证登录拦截与访问控制,实现简单的Web安全防护。

1.工程搭建与验证

1-工程搭建
1.脚手架搭建

Cloud Native App Initializer

Initializr generates spring boot project with just what you need to start quickly!

Cloud Native App Initializer

借助于阿里云脚手架,我们可以快速创建一个maven或gradle工程

.0.227.62.6.132.4223.12RELEASE

WEB,SECURITY,JPA,ACTUATOR,DE

TARTALIYUN.COMISPOWEREDBY

CLOUDNATIVEAPPILNITIALIZER

项目构建方式

云原生应用脚手架

浏览代码-CTRL+SPACE

O1999-2023ALIYUN.CON

暂未选择任何组件

RADLEPROJECT

组件与示例

PRINGBOOT版本

获取代码-8+

SPRINGSECURIT

巴巴微

三分组列表

我要反

搜索依赖组件

COMYZXK

目基本信息

服务生

AVENPROJEC

应用架构

ALYUNCON

解决方案

开发语言

ARTIFACT

高级选项

KOTLIN

已选组件

VC架构

单模块

GROOVY

GROUP

Q搜索

AVA

分享..

色千


如上图创建完之后,点击:浏览代码。即可查看代码大致目录结构,如下图

XSI:SCHEMALOCATION="HTTP://MAVEN.APACHE.ORG/POM/4.0.0HTTPS://MAVEN,APACHE,ONG/XSD/MAVEN-4.0..XSD'>

PROECTXMLNS=HTTP://MAVEN,APACHE,ORG/PON4.0.O"XMLNS:XSI="HTTP//W.W3,ORG/20L/MLSCHEMA-INSTANCE

<PROJECT.BUILD,SOURCEENCODINGUTF-8</PROJECT.BUILD.SOURCEENCODING>

<DESCRIPTION>DEMOPROJECTFORSPRINGSECURITY</DESCRIPTIOR

<NNOIECT,REOORTINA.OUTPUTENCODINGUTF-8</PROJECT.REPORTING.OUTPUTEN

<ARTIFACTID>SPRING-BOOT-STARTER</ARTIFACTID>

<QROUPID>ORG.SPRINGFRAMEWORK.BOOT</GROUPLD>

<SPRINA-BOOT.VERSION>3.0.2</SPRING-BOOT.VERSION>

XMLVERSION="1.0"ENCODING-"UTF-8"?>

巴SPRINGSECURITYAPPLICATIONTESTSJAVA

<MODE1VERSION>4.0.0</MODELVERSION>

ARTIFACTLD>SPRINGSECURITY</ARTIFACTLD>

<JAVA.VERSION>17</JAVA.VERSION>

凸SPRINGSECURITYAPPLICATIONJAVA

<NAME>SPRINGSECURITY</NAME>

<GROUPID>COM.YZXB</GROUPID>

<VERSION>0.0.1-SNAPSH0T</VERSION>

PRINGSECURITY.ZIP

SPRINGSECURITY

</PROPERTIES>

/DEPENDENCY>

C+.NENORTINA.OUTPUTENCODING>

SPRINGSECURITY

<DEPENDENCIES>

<DEPENDENCY>

DENENDENCY>

载源码包

ROPERTIES>

HELP.MD

DOWNLOAD

POM.XM

一JAVA

POM.XML

DGITIGNORE

COM

二MAIN

TEST

一YZXB

一JAVA

LCOPY

YZXB

SRC

一COM


注意:这里默认的SpringBoot版本是3.0.2,其默认使用JDK需要17,一般建议大家使用低一点的版本,这里笔者采用的:2.7.6,即上图版本中的第二个。
2.代码导入
确认无误后,我们下载代码,并完成idea的工程导入

SPRINGSECURITY~/DESKTOP/CODE/SPRINGSECURITY

PUBLICCLASSSPRINGSECURITYAPPLICATION

UBLICSTATICVOIDMAIN(STRINGL]ARGS)(

PACKAGECYX.GECU义

SPRINGSECURITYGITHUB(MATERIAL)

SPRINGAPPLICATIONRUN(SPRINGSECURITYA

OM>YZXB>SPRINGSECURITY>GSPRINGSECURITYAPPL

GSPRINGSECURITYAPPLICATION

O@SPRINGBOOTAPPLICATION

ACOM.YZXB.SPRINGSECURITY

SPRINGSECURITYAPPLICATIONJAVAX

SPRINGSECURITYAPPLICATIO

9VERSIONCONTROL

>会SCRATCHESANDCONSOLES

>血EXTERNALLIBRARIES

团SPRINGSECURITYIML

14:1LFUTF-84SPACES

PRINGSECURITY

MHELP.MD

IMPORT..

OGITIGNORE

PROJECT

门.IDEA

MPOM.XML

口TARGET

NGSECURITYAPPLICATION.CLASS,ARGS);

2USAGES

>SPRINGSECURL

口SRC

立JAVA

V二MAIR

>CTEST

RITY>GSPRINGSECURITYAPPLICATI

LICATIONV

RC>MAIN


3.代码验证
1.引入web依赖
2.编写访问入口
3.启动工程验证

HELLOSPRINGSECURITY

LOCALHOST:8080/DEMO


2.整合SpringSecurity
1.引入依赖
2.启动验证
启动过程中会发现,日志已经有明显变化

EFALTOUTAGERTINFITERGAEDED,ONYSARINFRAON,ERITY,EDATHANTETINMMATCITENIATOITEKNETE,ONARINTREAONAEONTYWENAENAE

ETEACNEIAREITERIRTRTECR,ORGSORINGFRANEAORH.SEUITYWEH,ERYLETAPI.SECUNITYORTERTHDERMAREIEPUESTITEIAIS,ARNYSRNANTRATENIK.AEAUTAE

DIALENODELIEITARAGPOE,AMGSRINFARENORSEURITY,MEN,CREXTREQESTAEYNC.ITSNTBNAPEINEARETANFITETEFATAD,OURS,SRINGFRAERK.SEUNITYWE,ONTEXT

PNFRAENONESEURITYRNEOAUTERIETIN.LAUT,LCOUDFITERGTABDLE,RYSRINFRANEON,SEUNTY,TENARTERTATIO.AEMANEASORDHITEATIATAIHTENNOTO,O

TCOATETPARSTSTANEITE(TAE,ARNPARNINGFARENOK.AECUETYAEDTNEATENTEAERITEITAREREL,ARGARIRFTRENRNAEAIEAE.CERT.SATENGARAO,

,SORIRGFRARENORKSEURITY,NEB,AUTHERTITATIONUIEFAITLCGINPANGENERATINFITERGLVLESU,CRGSRINFRAEORK,SECURITYNED,UTENTIATIONU

ARNOUSUTETSNIORITERGEAR,ORGSPRINGFRANENONK,SECURITY,ET,SESION.SSIONLANAGERENFITER6C0E0,ORN.SRINFAREARKSEURITYVE)APSS

NMAINJO,S,S,REB,DEFAUITSECUNITYFIZTERCHAI7:ILSECUNEANYPEQUESTRZTNLORG.SPR2N9RAMENO,SECUYNTBE,SES4U

N]W,S,C,SEPOETLEBSEPVERAPLICATIONCONTEXT:RPOTWEBAPLICATIONCONTEXT:INITIALIZATIONCOMPLETEDINS30MS

,S,B.W.EMBEDDEDTOMCAT.TONCATLLEBSERVER:TOMCATSTANTEDONPORTS)OOD

,SONINGFRAMEWORK,SECUNITY.WEB.ACESS,INTENCEPT.FILTERSECURZTYLNTE"CEPU"E-"E""

:STARTEDSPRINGSECURITYAPPLICATIONIN0.663SECONDS(JVMRUNNINGFOR0.878)

THISGENERATEDPASSWORDISFORDEVELOPMENTUSEONLY.YOURSECUNITYCONFIGURATION

9个2023-08-0816:38:31.952INF032667---[

3-08-0816:39:22,626INF032667--[NI0-8080-EXEC-1]0.A,C-C.C.LT0MCAT].LLOCALN0ST).L/

AIN].S.S.USERDETAILSSERVICEAUTOCONFIGURATION:

:INITIALIZINGSPRINGEMBEDDEDWEBAPPLICATIONCONTEXT

..EXCEPTIONTRANSLATIONFILTER@55F8669D,ORGSPRINGFRAMEWORK

>ORG.SPRINGFRAMEWORK.BOOT:SPRING-BOOT-STARTER

>功ORG.SPRINGFRAMEWORK.BOOT:SPRING-BOOT-STARTER-

口2023-08-0816:38:31.952INF032667---

司司2023-08-0816:38:32.067WARN32667

24:125(23CHARS)LFUF-84SPACESDSSPRINGSECURITYMGITHUB(MATERIA)

2023-08-0816:38:32.0951NF032667-L

>ORG.SPRINGFRAMEWORK.BOOT:SPRING-BOOT-STARTER

2023-08-0816:38:32.114INF032667---[

SPRINGSECURITY将会拦截任意的HTP请求

FONERUNNINGYOUNAPPLICATIONLNPRODUCTIO.

MAIN]C.Y.S.SPRINGSECURITYAPPA

MAIN]O,A.C.C.C.[TOMCAT].[LOCALHOST].[/]

2023-08-0816:38:32.118INF032667---[

USINGGENERATEDSECURITYPASSWORD:E201F3A8-3DB8-4A0

RETURN"HELLOSPRINGSECURITY"

RUNCSPRINGSECURITYAPPLICATIONX

回COM.YZXB.SPRINGSECURITY

PUBLICCLASSHELLOCONTROLLER

PUBLICSTRINGHELLOWORLD()

CDSPRINGSECURITYAPPLICATION

PRINGSECURITY>SRCMAINJAVACOY

QUESTMAPPING(VDEMO)

TIONMUSTBEUPDATEDBERORERUNNGYOOAPP

CCONSOLEYACTUATOR

MSPRINGSECURITY

十X

9VERSIONCONTROL

LDEPENDENCIES

PRINGSECURITYAPPLICATIONJAVA

VAMPOM.XML(SPRINGSECURITY)

INITIALIZINGSPRINGDISPATCHERSERVLET'DISPATCHERSERVLET'

.SECUNITYCONTEXTPERSISTENCEFILTER@15FD1F2,ONG.SPRINGFRAMEWORK,SECUNITY.WEB,HEADER.HEADERW

OHELLOCONTROLLER

OHELLOCONTROLLERJAVA

>C6LIFECYCLE

NNTALER)NHEON

GGETMAPPING雷

默认的密码

PRINGSECURITY

L门MAPPER

>LPLUGINS

VAWEB

NOUSAGES

3山一

日兰

ASERVICE

VDMAIN

PROJECT

V立SRC

MAIN]W.S.C.SERVLETWEBSERVERAPPLICATIONC

AVEN

.HSORINGSECURTYWO

.ANONYMOUSAUTHENTICATIONFILTER@5E8604BF,ORG.SPNINGFRAMEWORK.SE

X

金1A1

口JAVA

9S

0

品S1N99E

DB8-4A02-B985-9F276B14C6D7

25

G


此时我们再去浏览器访问,会发现系统自动跳转到路径:login,如下:

PLEASESIGNIN

Q阳西寿口国新

OLOCALHOST:8080/LOGIN

USERNAME

SIGNN

PASSWORD

PLEASESIGNIN

C


这就验证了我们已经完成了SpringSecurity的整合,此时我们可以用默认账户登录:
用户名:user
密码:控制台输出,这里就是:e201f3a8-3db8-4a02-b985-9f276b14c6d7
这里也说明了:默认的密码在每次重启工程后是会变化的
当输入正确的用户名密码后,将自动跳转至我们前面访问的路径:http://localhost:8080/demo,结果:

HELLOSPRINGSECURITY

LOCALHOST:8O8ODEMO

LOCALHOST:8080/DEMO


3.完整代码获取
git仓库地址:https://github.com/Herbbbb/SpringSecurity.git
git分支:Day01-整合Springboot与SpringSecurity

1 人点赞

1

油炸

相关文章
|
1天前
|
JSON 安全 Java
2.OAuth2.0实战案例
本文详细演示了OAuth2.0四种授权模式的实战应用,涵盖资源与授权服务搭建、配置及测试流程。通过具体案例展示授权码、简化、密码和客户端模式的实现步骤,并结合Spring Security完成认证授权,最终成功获取token并访问受保护资源。
|
1天前
|
存储 安全 前端开发
1.认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。文中介绍了其四大授权模式:授权码模式(最安全,适用于Web应用)、简化模式(适用于前端单页应用)、密码模式(需高度信任)和客户端模式(服务间调用)。通过案例解析,说明OAuth2.0如何实现服务间资源共享与单点登录,提升系统安全性与用户体验。
1.认识OAuth2.0
|
1天前
|
存储 安全 前端开发
1.RememberMe简介及用法
RememberMe是一种保持用户登录状态的机制,通过Cookie实现关闭浏览器后仍可自动登录,避免重复认证。其原理是在用户首次登录并勾选“记住我”后,服务端生成Token并存储于Cookie,后续请求自动携带该Token进行校验,提升用户体验同时需注意安全风险。
|
1天前
|
前端开发 安全 Java
1.自定义认证前端页面
本文介绍如何在Spring Security项目中自定义认证前端页面,包括login.html的创建与配置、前后端代码整合及SecurityConfig安全配置详解,实现表单登录验证并完成启动测试。
 1.自定义认证前端页面
|
1天前
|
安全 Java 开发者
2.过滤器链加载原理
本文深入解析Spring Security过滤器链的加载原理,通过分析DelegatingFilterProxy、FilterChainProxy及SecurityFilterChain源码,揭示十五个过滤器如何自动装配并生效,帮助开发者理解框架底层机制,为自定义认证流程奠定基础。
 2.过滤器链加载原理
|
1天前
|
存储 缓存 Java
自动装配机制
本文深入解析SpringBoot自动装配机制,从@SpringBootApplication注解入手,剖析其组合注解的实现原理。重点讲解@EnableAutoConfiguration如何通过@Import和SpringFactoriesLoader加载自动配置类,结合@ComponentScan、@SpringBootConfiguration等完成组件扫描与注册,实现“零配置”下的自动化装配,提升开发效率。
自动装配机制
|
1天前
|
监控 Java 测试技术
生产环境发布管理
本文介绍大型团队中生产环境的发布管理流程,涵盖从开发到生产的多环境部署策略(DEV→TEST→PRE→PROD),结合自动化CI/CD平台实现分支管理、一键发布与回滚。通过图文详解环境隔离、Jenkins+Docker自动化构建部署、Skywalking日志链路追踪等实践,提升发布效率与系统稳定性。
|
1天前
|
XML Java Maven
3. 打包
本文介绍Java项目打包为可执行JAR文件的流程,包括配置文件处理、Maven打包步骤、运行与停止指令。支持前台/后台运行,并提供分离依赖与配置的打包参考方案。
3. 打包
|
1天前
|
XML Java 数据格式
无标题
`@Configuration` 注解用于标记配置类,相当于 XML 配置文件,配合 `@Bean` 注册 Bean。通过 `AnnotationConfigApplicationContext` 可加载配置类并启动 IOC 容器,实现组件管理。
无标题
|
1天前
|
存储 安全 Java
认证源码分析与自定义后端认证逻辑
本文深入分析Spring Security认证流程源码,从UsernamePasswordAuthenticationFilter到AuthenticationManager、AbstractUserDetailsAuthenticationProvider,解析认证核心机制。结合自定义UserDetailService实现与SecurityConfig配置,手把手实现数据库认证逻辑,助力掌握安全框架的定制化开发。