前端网站开发教程,宁波外贸公司联系方式,那些网站是做生鲜的,中高端社交网站建设服务商目录 前言 一、概念 1.什么是springsecurity 2.对比shiro 二、开始项目 1.建立一个空项目#xff0c;建立module#xff0c;引入相关依赖 2.启动项目#xff0c;访问项目 3.自定义密码 总结 前言
记录一下学习springsecurity的过程
开发环境#xff1a;IDEA 一、概念
1.… 目录 前言 一、概念 1.什么是springsecurity 2.对比shiro 二、开始项目 1.建立一个空项目建立module引入相关依赖 2.启动项目访问项目 3.自定义密码 总结 前言
记录一下学习springsecurity的过程
开发环境IDEA 一、概念
1.什么是springsecurity
spring提供的安全管理框架核心功能是认证授权
认证验证当前用户是不是本系统注册的用户识别具体是哪个用户
授权通过认证的用户需要判断是否具有权限进行某个操作
2.对比shiro
springsecurity功能更强大shiro更容易上手应用
二、开始项目
1.建立一个空项目建立module引入相关依赖
new Project-Empty Project File-new module-Spring Initializr-Maven-选择需要加入的功能-生成项目等待依赖导入 必须选择的包括springsecurityspringweb注意右上角选择自己想要的springboot版本springboot版本与jdk版本要匹配否则可能会导致其他依赖的版本混乱 附上依赖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/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.14/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.example/groupIdartifactIdspringsecuritydemo/artifactIdversion0.0.1-SNAPSHOT/versionnamespringsecuritydemo/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version11/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project2.启动项目访问项目
控制台输出如下意思是自动生成了密码如果你要在生产环境使用应该修改配置
Using generated security password: 7bc86ae1-30a1-435c-bc59-6d894a7ae0b6This generated password is for development use only. Your security configuration must be updated before running your application in production.
访问项目localhost:8080以往我们访问本地项目直接会进入首页但这次弹出了一个登录页面
这是springsecurity自带的过滤器验证当前用户没有登陆自动跳转到登录页面
这个页面是通过网络下载的bootstrap页面如果下载的有问题那么页面展示效果可能会不太好可以忽略 输入账号密码登录默认账号为user密码为刚刚控制台输出的
登陆后跳转到error页面这并不是登录失败了只是没有识别到登陆成功后应该跳转到哪
我们可以自己写一个接口访问比如http://localhost:8080/index页面输出hello world!
RestController
public class IndexController {GetMapping(/index)public String index() {return hello world!;}
}3.自定义密码
如果我们不想使用默认生成的密码可以自己配置密码application.yml
spring:security:user:name: adminpassword: 1234那么刚才我们没有配置密码的时候默认密码是怎么生成的呢security的User类给name和password提供了默认值
private String name user;
private String password UUID.randomUUID().toString();
4.自定义登陆页面
显然我们不可能使用security提供的登陆页面 总结