当前位置: 首页 > news >正文

dz网站地图怎么做it互联网培训机构排名

dz网站地图怎么做,it互联网培训机构排名,做免费试用的网站,淘宝客建立网站一、 Spring Security 概述 Spring Security是Spring组织提供的一个开源安全框架#xff0c;基于Spring开发#xff0c;所以非常适合在Spring Boot中使用。 官方文档地址#xff1a;https://docs.spring.io/spring-security/reference/index.html GitHub地址#xff1a;…一、 Spring Security 概述 Spring Security是Spring组织提供的一个开源安全框架基于Spring开发所以非常适合在Spring Boot中使用。 官方文档地址https://docs.spring.io/spring-security/reference/index.html GitHub地址https://github.com/spring-projects/spring-security 目前最新的版本是6.1.4提供了许多新功能需使用JDK 17及以上版本。 Spring Security作为一个功能完善的安全框架具有以下特性 认证Authentication解决 “你是谁” 的问题验证系统中是否有这个“用户”(用户/设备/系统)也就是我们常说的“登录”。授权Authorization权限控制/鉴别解决的是系统中某个用户能够访问哪些资源即“你能干什么”的问题。Spring Security 支持基于 URL 的请求授权、方法访问授权、对象访问授权。加密对重要信息进行加密处理如对密码进行加密、匹配等。会话管理对用户认证、会话信息进行存储管理。RememberMe: 实现“记住我”功能并可以实现token令牌持久化。抵御攻击对常见的网络攻击进行防御。 二、入门示例搭建 2.1 层级结构 . ├── springboot3-cloud-example │ ├── spring-security │ │ ├── hello-security │ │ │ ├── src │ │ │ └── pom.xml │ │ └── pom.xml | └── pom.xmlspringboot3-cloud-example顶级项目spring-security父级项目起到目录划分作用hello-securitySpring Security入门示例 2.2 顶级项目完整pom依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.gm/groupIdartifactIdspringboot3-cloud-example/artifactIdnamespringboot3-cloud-example/nameversion0.0.1-SNAPSHOT/versionpackagingpom/packagingdescriptionSpringBoot3-Cloud进阶实战示例/description!--各版本对应关系 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E --propertiesspring-boot.version3.1.4/spring-boot.versionspring-cloud.version2022.0.0/spring-cloud.versionspring-cloud-alibaba.version2022.0.0.0/spring-cloud-alibaba.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.target/propertiesmodulesmodulespring-security/module/modulesdependencies!--Lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdscopeprovided/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesdependencyManagementdependencies!-- spring boot 依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency!-- spring cloud 依赖 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency!-- spring cloud alibaba 依赖 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildfinalName${project.name}/finalNameresourcesresourcedirectorysrc/main/resources/directoryfilteringtrue/filtering/resource/resourcespluginManagementpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfigurationfinalName${project.build.finalName}/finalNamelayersenabledtrue/enabled/layers/configurationexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/pluginManagement/buildprofilesprofileiddev/idproperties!-- 环境标识需要与配置文件的名称相对应 --profile.activedev/profile.activenacos.usernamenacos/nacos.usernamenacos.passwordnacos/nacos.password/propertiesactivation!-- 默认环境 --activeByDefaulttrue/activeByDefault/activation/profileprofileidtest/idproperties!-- 环境标识需要与配置文件的名称相对应 --profile.activetest/profile.activenacos.usernamenacos/nacos.usernamenacos.passwordnacos/nacos.password/properties/profile/profiles /project2.3 父级项目完整pom依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspringboot3-cloud-example/artifactIdgroupIdcom.gm/groupIdversion0.0.1-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionpackagingpom/packagingartifactIdspring-security/artifactIdmodulesmodulehello-security/module/modules /project2.4 入门示例 2.4.1 完整pom依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentartifactIdspring-security/artifactIdgroupIdcom.gm/groupIdversion0.0.1-SNAPSHOT/version/parentartifactIdhello-security/artifactIdpackagingjar/packagingdescription入门示例/descriptiondependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependencydependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-test/artifactIdscopetest/scope/dependency/dependencies /projectspring-boot-starter-security是Spring Boot官方提供的启动器提供了自动配置和依赖包管理功能主要包含以下几个子模块 spring-security-core 核心包包含核心认证和访问权限功能类和接口、远程支持和基本配置spring-security-web Web框架集成包包含过滤器和相关的安全基础设施代码spring-security-config包含security命名空间解析代码和Java配置代码 2.4.2 创建访问接口 接下来我们随便编写一个web访问接口方便后面进行测试。 package com.gm.security.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;RestController public class HelloController {GetMapping(/hello)public String hello() {return hello spring security;} }2.4.3 创建项目入口 package com.gm.security;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class HelloSecurityApplication {public static void main(String[] args) {SpringApplication.run(HelloSecurityApplication.class, args);} }2.4.4 运行项目 我们把项目启动起来后在浏览器中对/hello进行访问会发现/hello是无法直接访问的。在访问/hello之前会自动跳转到/login地址进入到一个登录界面。这是因为Spring Boot中约定大约配置的规则只要我们添加了Spring Security的依赖包就会自动开启安全限制在访问Web接口之前会进行安全拦截。只有输入了用户名和密码才能访问项目中的Web接口上述过程如下图所示 此时登录界面中要求我们输入用户名和密码。这个默认的用户名是user密码是一个用UUID生成的随机字符串。在每次启动项目时都可以在控制台中看到生成的随机密码如下图所示 2.4.5 随机密码生成机制 能有小伙伴会很好奇这个随机的密码到底是在哪里生成的呢 让我们分析一下Spring Security的源码来看看这个密码的生成策略。这个默认的用户名和密码其实是在SecurityProperties类中定义的源码如下图 而控制台上打印的密码日志是在UserDetailsServiceAutoConfiguration类的getOrDeducePassword方法中输出的。 我们只要把这个随机密码复制粘贴到登录页面的密码框中就可以访问/hello接口了。 2.5 配置Spring Security账户密码 从上面的源码分析可知默认的登录密码是利用UUID生成的随机字符串很明显如果我们使用这个字符串作为登录密码就太麻烦了。那么有没有更方便的登录账户呢 Spring Security框架允许我们自己配置用户名和密码并且提供了2种方式来进行自定义用户名和密码 在配置文件中定义在配置类中定义 2.5.1 在配置文件中定义 在application.yml配置文件新增以下内容 spring:security:user:name: adminpassword: 1234562.5.2 在配置类中定义 新建配置类SecurityConfig新增以下内容 package com.gm.security.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager;Configuration EnableWebSecurity(debug true) public class SecurityConfig {Beanpublic UserDetailsService userDetailsService() {UserDetails user User.withDefaultPasswordEncoder().username(admin).password(123456).roles(USER).build();return new InMemoryUserDetailsManager(new UserDetails[]{user});} }2.5.3 重启项目 实现以上2种方式的任何一种我们重启项目这时候利用我们自己配置的用户名和密码就可以访问/hello接口了。 在后续章节中会对以上2种实现方式进行具体源码分析。 至此我们入门案例搭建完毕。我们只需要添加一个Spring Security依赖包就可以实现Web安全控制。
http://www.pierceye.com/news/659624/

相关文章:

  • 域名注册网站的域名哪里来的楚雄建网站
  • 专门教ps的网站简单的app开发制作
  • 电商网站建设综述湖北seo网站设计
  • 南京做网站营销网站后台忘记账号密码
  • 敦化建设局网站饰品做国际贸易哪些网站
  • 网站做js跳转怎么创建公司
  • 网站建设合同需要交印花税吗怎么做网站卖美瞳
  • 小程序价格为什么比网站建设高自定义wordpress的实用技巧
  • 企业网站模板源码有哪些报价网站制作
  • 网站建设与网页设计实训报告二级建造师建设云网站
  • 网站后缀gov汕头网站建设小程序
  • 一个空间做多个网站wordpress大改动
  • 桂林北站到机场大巴专线时刻表wordpress 分类 标签
  • 自媒体网站源码模板dede重庆永川网站建设报价
  • 国外酷炫网站网页前端设计流程
  • 子午谷网站建设世界杯网页设计素材
  • 关于网站建设申请报告电商网站建设价位
  • 网站评价系统源码wordpress笔记本主题
  • 大庆市建设大厦网站广告设计海报
  • 惠州建设工程交易网站网络营销专业的职业生涯规划
  • 网站页面架构图阿里云的企业网站建设
  • 做微商网站有专门做网站的公司吗
  • 潍坊网站建设方案托管天津建站网
  • 前端如何做双语网站信誉好的唐山网站建设
  • 创建网站目录应注意电子商务类网站设计
  • 哪个网站专做进口商品的企业网站建设的方案ppt
  • 网站结构如何优化wordpress4.7.10漏洞
  • 官方网站举例流量型网站
  • DW个人网站怎么做长沙民企人才网
  • 电脑做网站教学友情链接交易