IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring Security学习入门 -> 正文阅读

[Java知识库]Spring Security学习入门


前言

这些阵子做项目用到了Security做认证,结果在做资源访问时总是401异常,想想自己也重来没系统的整理过Security的知识,所以写下这篇博客来梳理下自己所学的Security知识



一、Spring Security核心功能

作为一个权限管理框架,Spring Security最最核心的功能无非就是两个方面

  • 认证
  • 授权

简单的说,认证就是我们常说的登录,授权就是权限鉴别,看看请求是否具备相应的权限

Spring Security 支持多种不同的认证方式,这些认证方式有的是Spring Security自己提供的认证功能,有的是第三方标准组织制定的,主要有以下比较常见的:

  • HTTP BASIC authentication headers:基于IETF RFC 标准
  • HTTP Digest authentication headers:基于IETF RFC 标准
  • HTTP X.509 client certificate exchange:基于IETF RFC 标准。

  • LDAP:跨平台身份验证。

  • Form-based authentication:基于表单的身份验证。

  • Run-as authentication:用户用户临时以某一个身份登录。

  • OpenID authentication:去中心化认证。

  • Jasig Central Authentication Service:单点登录。

  • Automatic "remember-me" authentication:记住我登录(允许一些非敏感操作)。

  • Anonymous authentication:匿名登录

作为一个开放的平台,Spring Security 提供的认证机制不仅仅是上面这些。如果上面这些认证机制依然无法满足你的需求,我们也可以自己定制认证逻辑。当我们需要和一些“老破旧”的系统进行集成时,自定义认证逻辑就显得非常重要了。

除了认证,剩下的就是授权了。

Spring Security 支持基于 URL 的请求授权(例如微人事)、支持方法访问授权以及对象访问授权


二、Spring Security配置默认的用户

我们都知道在Spring Boot项目中导入Spring Security的依赖后再启动项目,就会自动启动拦截功能,此时Spring Security默认的登录用户名是user,密码是控制台打印的一个随机的UUID字符串,那么怎么改变默认的登录用户呢,下面介绍了两种方法


1.通过Spring Boot配置文件来配置

修改application.yml或者application.properties的内容,我修改的是yml文件代码如下:

spring:
  security:
    user:
      name: admin
      password: 1234567


2.通过Spring Security配置来添加内存中的用户

  1. 创建一个配置类继承WebSecurityConfigureAdapter
  2. 重写参数为AuthenticationManagerBuilder的configure方法
  3. 配置一个PasswordEncoder的Bean????
  4. roles中配置的是用户的角色可以忽略? ? ? ? ??
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Bean
    PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication().
                withUser("admin")
                .password(passwordEncoder().encode("123456"))
                .roles("admin");
    }

?注意:在配置类中配置的用户名和密码会覆盖掉配置文件中相同的用户名和密码,例如在我这里配置文件中写的用户名为admin密码为1234567,然后在配置类中我写的用户名为admin,密码为:123456,在实际登录时正确的密码就为123456

未完待续......

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:15:46  更:2021-10-18 17:17:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:09:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码