Spring Security:(一)入门案例

Spring Security 简介

Spring Security is a framework that provides authentication, authorization, and protection against common attacks. With first class support for both imperative and reactive applications, it is the de-facto standard for securing Spring-based applications.

Spring Security 是一个提供身份验证、授权和针对常见攻击的保护的框架。 凭借对命令式和反应式应用程序的一流支持,它是保护基于 Spring 的应用程序的事实上的标准。

项目搭建

本项目基于 Spring Boot 框架,引入 Spring Security 依赖。数据库采用 mysql。

引入依赖

在项目的 pom.xml 文件中添加 Spring Security 的依赖坐标。

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

 这里 Spring Boot 用的版本是 2.1.12。 在 eclipse 或 idea 中可以查看到 spring-boot-starter-security 依赖的 Spring Security 版本是 5.1.7。下图是 spring-boot-starter-security 依赖的坐标文件:

Spring Security 项目中有很多模块,包括如下模块:

  • spring-security-core
  • spring-security-remoting
  • spring-security-web
  • spring-security-config
  • spring-security-ldap
  • spring-security-oauth2-core
  • spring-security-oauth2-client
  • spring-security-oauth2-jose
  • spring-security-oauth2-resource-server
  • spring-security-acl
  • spring-security-cas
  • spring-security-openid
  • spring-security-test

共 13 个模块。spring-boot-starter-security 只引用了其中的两个模块。

测试接口

在项目里添加一个接口,其代码如下:

@RestController
@RequestMapping("/app/api")
public class AppController {

    @GetMapping("/hello")
    public String hello() {
        return "hello, app";
    }
}

此接口返回一个字符串,在未引入 Spring Security 可以请求获取数据。但引入 Spring Security 后重新启动项目,再次访问时就会提示要求输入账号密码了。

访问 http://localhost:8080/app/api/hello 时,页面会跳转到 http://localhost:8080/login 页面,这是 Spring Security 源码中自带的一个简易登陆页面。项目在启动时 Spring Security 会自动创建一个名为 user 的用户,其密码会打印在控制台。

在登陆页面输入 user 和对应的密码就可登陆成功,然后跳回到 http://localhost:8080/app/api/hello

这样项目的接口就被 Spring Security 保护起来了,需要登录后才能访问。实际项目比上述 demo 要复杂,账号密码是从数据库中查询的,又或者项目是分布式的,这些内容后面文章逐点讲解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值