古道长亭

Contact me with ixiaoqiang0011@gmail.com


  • 首页

  • 归档

  • 分类

  • 关于

  • Book

  • 搜索

Spring Security 基础

时间: 2022-12-11   |   分类: Spring-Security   | 字数: 1519 字 | 阅读约: 4分钟 | 阅读次数:

Spring Security 基础

1.简介

Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。Spring Security是一个框架,致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring Security的真正强大之处在于可以轻松扩展以满足自定义要求

2.安全技术方案对比

  • shiro

    Shiro是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密。如下是它所具有的特点

    易于理解的 Java Security API;

    • 简单的身份认证(登录),支持多种数据源(LDAP,JDBC,Kerberos,ActiveDirectory等);

    • 对角色的简单的鉴权(访问控制),支持细粒度的鉴权;

    • 支持一级缓存,以提升应用程序的性能;

    • 内置的基于 POJO 企业会话管理,适用于 Web 以及非 Web 的环境;

    • 异构客户端会话访问;

    • 非常简单的加密 API;

    • 不跟任何的框架或者容器捆绑,可以独立运行

  • Spring Security

    除了不能脱离Spring,shiro的功能它都有。而且Spring Security对Oauth、OpenID也有支持,Shiro则需要自己手动实现。Spring Security的权限细粒度更高

    OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。“客户端"不能直接登录"服务提供商”,只能登录授权层,以此将用户与客户端区分开来。“客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。

    “客户端"登录授权层以后,“服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。

    OpenID 系统的第一部分是身份验证,即如何通过 URI 来认证用户身份。目前的网站都是依靠用户名和密码来登录认证,这就意味着大家在每个网站都需要注册用户名和密码,即便你使用的是同样的密码。如果使用 OpenID ,你的网站地址(URI)就是你的用户名,而你的密码安全的存储在一个 OpenID 服务网站上(你可以自己建立一个 OpenID 服务网站,也可以选择一个可信任的 OpenID 服务网站来完成注册)。

    与OpenID同属性的身份识别服务商还有ⅥeID,ClaimID,CardSpace,Rapleaf,Trufina ID Card等,其中ⅥeID通用账户的应用最为广泛

3.Spring Security框架功能简介

  • 谁证:用户登录,解决你是谁?
  • 授权:判断用户拥有什么权限,可以访问什么资源,解决你干什么?
  • 安全防护,防止跨站请求,session攻击等

4.应用场景

  • 用户登录,传统基于web开发的项目的登录功能
  • 用户授权,在系统中用户拥有哪些操作权限
  • 单一登录,一个账号同一时间,只能在一个地方登录
  • 集成cas,做单点登录,即多个系统只需登录一次,无需重复登录
  • 集成oauth2,做登录授权,可以用于app登录和第三方登录

5.入门案例

启动并调用测试接口如下图:

查看看这个页面源代码,这里有三点需要注意下:

  • 表单的提交方式和路径: post /login

  • input输入项的name值: username password

  • 隐藏域input的name: 值为: _csrf value值为d4329889-796a-447a-9d08-69e56bc7c296

SpringBoot已经为SpringSecurity提供了默认配置,默认所有资源都必须认证通过才能访问。那么问题来了!此刻并没有连接数据库,也并未在内存中指定认证用户,如何认证呢?

其实SpringBoot已经提供了默认用户名user,密码在项目启动时随机生成,如图:

#spring security#
QQ扫一扫交流

标题:Spring Security 基础

作者:古道长亭

声明: 欢迎加群交流!

如有帮助,欢迎多多交流 ^_^

微信打赏

支付宝打赏

mysql 简介
mysql 安装
  • 文章目录
  • 站点概览
古道长亭

古道长亭

Always remember that your present situation is not your final destination. The best is yet to come.

226 日志
57 分类
104 标签
GitHub Gitee
友情链接
  • 古道长亭的BOOK
  • JAVA学习
标签云
  • Mysql
  • 搜索引擎
  • Mybatis
  • 容器
  • 架构
  • 消息队列
  • Flink
  • Sharding sphere
  • 流处理
  • 缓存
  • 1.简介
  • 2.安全技术方案对比
  • 3.Spring Security框架功能简介
  • 4.应用场景
  • 5.入门案例
© 2019 - 2024 京ICP备19012088号-1
0%