Spring Security【一】框架概述

视频链接:SpringSecurity框架教程
文章源码:https://github.com/geyiwei-suzhou/spring-security

前置知识
  • Spring
  • Spring Boot
  • Java WEB

Web应用的安全性包括用户认证(Authentication)用户授权(Authorization)
用户认证:系统认为用户是否能登录
用户授权:系统判断用户是否有权限去做某些事情

Spring Security 对比 Shiro
Spring SecurityShiro
和Spring无缝整合-
全面的权限控制-
专门为web开发而设计通用性
重量级轻量级
  • Spring Security 专门为web开发而设计:
    旧版本不能脱离Web环境使用
    新版本对整个框架进行了分层抽取,分成了核心模块和Web模块。单独引入核心模块就可以脱离Web环境
  • Shiro通用性:
    好处:不局限于Web环境,可以脱离Web环境使用
    缺陷:在Web环境下一些特定的需求需要手动编写代码定制

Spring Security是Spring家族中的一个安全管理框架,实际上,在Spring Boot出现之前,Spring Security就已经发展了多年了,但是使用的并不多,安全管理这个领域,一直是Shiro的天下。相对于Shiro,在SSM中整合Spring Security都是比较麻烦的操作,所以,Spring Security虽然功能比Shiro强大,但是使用反而没有Shiro多(Shiro虽然功能没有Spring Security多,但是对于大部分项目而言,Shiro也够用了)。自从有了Spring Boot之后,Spring Boot对于Spring Security提供了自动化配置方案,可以使用更少的配置来使用Spring Security。

一般来说,常用的安全管理技术栈的组合是:

  • SSM + Shiro
  • Spring Boot / SpringCloud + Spring Security
Spring Security(5.3.8.RELEASE) 模块
  • Core — spring-security-core.jar
  • Remoting — spring-security-remoting.jar
  • Web — spring-security-web.jar
  • Config — spring-security-config.jar
  • LDAP — spring-security-ldap.jar
  • OAuth 2.0 Core — spring-security-oauth2-core.jar
  • OAuth 2.0 Client — spring-security-oauth2-client.jar
  • OAuth 2.0 JOSE — spring-security-oauth2-jose.jar
  • OAuth 2.0 Resource Server — spring-security-oauth2-resource-server.jar
  • ACL — spring-security-acl.jar
  • CAS — spring-security-cas.jar
  • OpenID — spring-security-openid.jar
  • Test — spring-security-test.jar
入门案例
创建SpringBoot工程

第一步
第二步
第三步

引入相关依赖

pom文件中添加如下依赖:

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

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>
修改配置文件

修改application.properties文件,添加如下内容将默认启动端口改为8111

server.port=8111
添加测试接口

新建类:com.antherd.securitydemo.controller.TestController

package com.antherd.securitydemo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestController {

  @GetMapping("/hello")
  public String add() {
    return "hello security";
  }
}
启动测试

启动项目,项目启动时会生成默认密码
默认用户为:user
启动项目
访问:http://localhost:8111/test/hello,由于未登陆,Spring Security 会将页面自动跳转到登陆页面http://localhost:8111/login
登陆页面
输入默认用户默认密码,登陆成功后自动跳转到之前访问页面 http://localhost:8111/test/hello

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值