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

SpringSecurity

安全 一直以来都是我们项目考虑的重点之一 并不是做完项目才开始了解项目的安全而是从一开始环境搭建的时候就要考虑项目的安全。
Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。
这就是我们对于安全的解决方案 他就是一个能保护springboot项目的框架。而且这个框架还是一个权限管理的框架能提供身份的验证和授权 实际上就是通过你的身份来给你进入相应的页面的权利 话不多说 赶紧开始上手使用

导包

首先还是要导入依赖

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

其实直接把web那个启动器的后面改一下就好了

写一个配置类

新建一个配置类 然后继承这个security的父类 再重写里面的方法 最后就是给上注解宣布这是一个配置让spring来接收这个配置 大概的思路就是这样的。
新建一个配置类

package com.kuang.config;

import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * @author Michelle
 */ //这里实现了拦截器的功能
@EnableMethodSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override

//    授权
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/**").hasRole("vip1")
                                .antMatchers("/vip2").hasRole("vip2");
        http.formLogin();

    }

//    认证


    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .passwordEncoder(new BCryptPasswordEncoder()).withUser("liu").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2")
                .and().withUser("x").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");
    }
}

可以看到里面重写了两个方法
对于第一个config
第一个是用来授权的 你想要给什么用户什么样的访问权限都是通过重写这个config来实现的 第一个授权的含义是 如果访问所有位于/**下的请求都至少需要得到vip1的授权第二个的含义也一样

对于第二个config
这里实现的是认证 简单来说就是你通过了账号密码的验证就能得到相对应的授权。但是要注意的是里面有一个密码的加密 我的理解是为了安全security强迫必须要对密码进行加密 因此就出现了设置密码的加密格式

到这里基本上拦截器的功能差不多就能实现了 睡觉去了 明天接着看

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-10 10:55:44  更:2021-12-10 10:56:58 
 
开发: 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/24 7:07:50-

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