Spring Security使用详解1(基本用法 )

Stella981
• 阅读 866

一般项目都会有严格的认证和授权操作,而在 Java 开发领域常见的安全框架有 Shiro 和 Spring Security。本文首先介绍下后者。

一、基本用法

1、什么是 Spring Security ?

  • Spring Security 是一个相对复杂的安全管理框架,功能比 Shiro 更加强大,权限控制细粒度更高,对 OAuth 2 的支持也更友好。
  • 由于 Spring Security 源自 Spring 家族,因此可以和 Spring 框架无缝整合,特别是 Spring Boot 中提供的自动化配置方案,可以让 Spring Security 的使用更加便捷。

2、安装配置

我们只需要编辑 pom.xml,添加 spring-boot-starter-securtiy 依赖即可。添加后项目中所有的资源都会被保护起来。 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

3、开始测试

(1)首先在项目添加一个简单的 /hello 接口:

@RestController
public class HelloController {
 
    @GetMapping("/hello")
    public String hello() {
        return "欢迎访问 hangge.com";
    }
}

(2)接着启动项目,直接访问 /hello 接口则会自动跳转到登录页面(这个登录页面是由 Spring Security 提供的)

Spring Security使用详解1(基本用法 )

(3)我们必须登录后才能访问 /hello 接口。默认用户名是 user,而登录密码则在每次启动项目时随机生成,我们可以在项目启动日志中找到。

Spring Security使用详解1(基本用法 )

(4)登录后则会自动跳转到之前我访问的 /hello 接口:

Spring Security使用详解1(基本用法 )

4、配置用户名和密码
如果对默认的用户名和密码不满意,可以在 application.properties 中配置默认的用户名、密码和角色。这样项目启动后就不会随机生成密码了,而是使用我们配置的用户、密码,并且登录后还具有一个 admin 角色(关于角色的用法再后面的文章会相信介绍)。

spring.security.user.name=hangge
spring.security.user.password=123
spring.security.user.roles=admin
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
kenx kenx
3年前
SpringBoot Spring Security 核心组件 认证流程 用户权限信息获取详细讲解
前言SpringSecurity是一个安全框架,可以简单地认为SpringSecurity是放在用户和Spring应用之间的一个安全屏障,每一个web请求都先要经过SpringSecurity进行Authenticate和Authoration验证核心组件SecurityContextHolderSecurityCon
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Spring Security 5 集成 Authing OIDC 单点登录指南
本文以Spring生态中用于提供认证及访问权限控制的SpringSecurity5为例,详细介绍SpringSecurity5如何接入AuthingOIDC。SpringSecurity是一个提供安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了SpringIoC
Stella981 Stella981
3年前
Spring Security 案例实现和执行流程剖析
SpringSecuritySpringSecurity是Spring社区的一个顶级项目,也是SpringBoot官方推荐使用的安全框架。除了常规的认证(Authentication)和授权(Authorization)之外,SpringSecurity还提供了诸如ACLs,LDAP,JAAS,CAS等高
Stella981 Stella981
3年前
Shiro权限相关配置文件
Shiro权限框架开发系统中,少不了权限,目前java里的权限框架有SpringSecurity和Shiro(以前叫做jsecurity),对于SpringSecurity:功能太过强大以至于功能比较分散,使用起来也比较复杂,跟Spring结合的比较好。对于初学SpringSecurity者来说,曲线还是较大,需要深入学习其源码和框架,配置起