【Spring-Security】【1】认证和授权

【认证】

  • 凭据为基础的认证:

    当你登录 e-mail 账号时,你可能提供你的用户名和密码。E-mail
    的提供商会将你的用户名与数据中的记录进行匹配,并验证你提供的密码与对应的
    记录是不是匹配。这些凭证(用户名和密码,译者注)就是 e-mail 系统用来鉴别你
    是一个合法用户的。

  • 两要素认证:

    当你想从自动柜员机取钱的时候,你在被允许取钱和做其他业务前,
    你必须先插卡并输入你的密码。这种方式的认证与用户名和密码的认证方式很类似,
    与之不同的是用户名信息被编码到卡的磁条上了。联合使用物理磁卡和用户输入密
    码能是银行确认你可能有使用这个账号的权限。联合使用密码和物理设备(你的
    ATM 卡)是一种普遍存在的两要素认证形式。
  • 硬件认证:

    早上当你启动汽车时,你插入钥匙并打火。尽管和其他的两个例子很类
    似,但是你的钥匙和打火装置的匹配是一种硬件认证的方式。

【授权】

  • 第一个是已经认证的安全实体与一个或多个权限(authorities)的匹配关系(通常称为
    角色)。例如,一个非正式的用户访问你的网站将被视为只有访问的权限而一个网站的管理
    员将会被分配管理的权限。
  • 第二个是分配权限检查给系统中要进行安全保护的资源。通常这将会在系统的开发过程
    中进行,有可能会通过代码进行明确的声明也可能通过参数进行设置。例如,在我们应用中
    管理宠物商店详细目录的界面只能对具有管理权限的用户开放。

    要进行安全保护的资源可以是系统的任何内容,它们会根据用户的权限进行有选择的
    可访问控制。web 应用中的受保护资源可以是单个的页面、网站的一个完整部分或者一部分
    界面。相反的,受保护的业务资源可能会是业务对象的一个方法调用或者单个的业务对象。

时间: 2024-12-07 17:57:27

【Spring-Security】【1】认证和授权的相关文章

Spring Security实现OAuth2.0授权服务 - 进阶版

<Spring Security实现OAuth2.0授权服务 - 基础版>介绍了如何使用Spring Security实现OAuth2.0授权和资源保护,但是使用的都是Spring Security默认的登录页.授权页,client和token信息也是保存在内存中的. 本文将介绍如何在Spring Security OAuth项目中自定义登录页面.自定义授权页面.数据库配置client信息.数据库保存授权码和token令牌. 一.引入依赖 需要在基础版之上引入thymeleaf.JDBC.my

Spring Security身份认证之UserDetailsService

zhiqian我们采用了配置文件的方式从数据库中读取用户进行登录.虽然该方式的灵活性相较于静态账号密码的方式灵活了许多,但是将数据库的结构暴露在明显的位置上,绝对不是一个明智的做法.本文通过Java代码实现UserDetailsService接口来实现身份认证. 1.1 UserDetailsService在身份认证中的作用 Spring Security中进行身份验证的是AuthenticationManager接口,ProviderManager是它的一个默认实现,但它并不用来处理身份认证,

Spring boot +Spring Security + Thymeleaf 认证失败返回错误信息

spring boot以其众多友谊的特性,如零配置.微服务等,吸引了很多的粉丝.而其与Spring Security安全框架的无缝结合,使其具备的安全的特性.在此基础上使用Thymeleaf模板引擎进行渲染,静动态结合,让页面开发更加简单.直观. 通过表单提交登录的用户名和密码是登录接口比较常见的一种设计.在初学的过程中,我也不例外的采用个这种方式.表单设计见下图. 登录成功,完成正常的主页面跳转,这个不存在问题.存在问题的是,登录失败了该咋办呢?我就在考虑,由于thymeleaf的局部刷新操作

Spring Security身份认证之HelloSpringSecurity

在上一篇文档中,对Spring Security中的身份认证的流程和管理进行了详细介绍,本文将从实践的角度告诉大家如何使用最简便的方式用Spring Security进行身份验证. 开发环境如下: JDK 1.7 Tomcat 7 Eclipse Spring Security 3.2.5 项目目录结构如下: 1.新建Maven Project,对Maven不熟悉的童鞋请自行充电,现在这个念头不学习Maven绝对是不行的. 2. 在Pom.xml添加相关jar依赖. <project xmlns

Spring Security 入门(1-11)Spring Security - 匿名认证

匿名认证 对于匿名访问的用户,Spring Security 支持为其建立一个匿名的 AnonymousAuthenticationToken 存放在 SecurityContextHolder 中,这就是所谓的匿名认证.这样在以后进行权限认证或者做其它操作时我们就不需要再判断 SecurityContextHolder 中持有的 Authentication 对象是否为 null 了,而直接把它当做一个正常的 Authentication 进行使用就 OK 了. 配置 使用 NameSpace

Spring Security身份认证之HelloSpringSecurity(附源码)

在上一篇文档中,对Spring Security中的身份认证的流程和管理进行了详细介绍,本文将从实践的角度告诉大家如何使用最简便的方式用Spring Security进行身份验证. 开发环境如下: JDK 1.7 Tomcat 7 Eclipse Spring Security 3.2.5 项目目录结构如下: 1.新建Maven Project,对Maven不熟悉的童鞋请自行充电,现在这个念头不学习Maven绝对是不行的. 2. 在Pom.xml添加相关jar依赖. <project xmlns

Spring Security 匿名认证

1.项目截图: 2.匿名认证配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:security="http://www.spri

SpringBoot学习(二)—— springboot快速整合使用spring security组

Spring Security 简介 spring security的核心功能为认证(Authentication),授权(Authorization),即认证用户是否能访问该系统,和授权用户可以在系统中进行哪些操作. 引入spring security组件 在 pom.xml 中加入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte

详解Spring Security进阶身份认证之UserDetailsService(附源码)

在上一篇Spring Security身份认证博文中,我们采用了配置文件的方式从数据库中读取用户进行登录.虽然该方式的灵活性相较于静态账号密码的方式灵活了许多,但是将数据库的结构暴露在明显的位置上,绝对不是一个明智的做法.本文通过Java代码实现UserDetailsService接口来实现身份认证. 1.1 UserDetailsService在身份认证中的作用 Spring Security中进行身份验证的是AuthenticationManager接口,ProviderManager是它的

Spring Security认证简介

认证简介 认证过程 用户使用用户名和密码进行登录. Spring Security 将获取到的用户名和密码封装成一个实现了 Authentication 接口的 UsernamePasswordAuthenticationToken. 将上述产生的 token 对象传递给 AuthenticationManager 进行登录认证. AuthenticationManager 认证成功后将会返回一个封装了用户权限等信息的 Authentication 对象. 通过调用 SecurityContex