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知识库 -> StringSrcurity的基本概念 -> 正文阅读

[Java知识库]StringSrcurity的基本概念

一、基本概念?

1、认证:确定使用者是否有权限,判断身份是否合法,基于用户名密码、二维码、短信验证码等

2、会话:为了避免用户每次操作都认证,让用户在登录一次后创建一个会话,在特定时间内,就不需要认证了,基于session、token等

3、授权:使用者是否对资源拥有权限,控制不同用户访问不同资源

授权的数据模型

简单理解为Who对What进行How操作。Who:主题、What:资源、How:权限(数据、功能)。

RBAC?

  • 基于角色的访问:判断主体是否有某些角色,当角色改变,可能要修改
  • 基于资源的访问:判断主体是否有访问资源的权限

二、基于Session的认证方式

1、认证流程:采用servlet规范,认证成功后,服务端给客户端返回sessionId,客户端存放到cookie中。

2、认证方式就是简单的流程登陆、采用过滤器进行权限方式拦截

三、基于String Security

1、spring security 提供了拦截器,用于权限校验,需要在配置文件或者配置类中进行配置

2、spring security 提供了登陆(login)、退出登陆(logout)页面,都是可以自定义的

3、spring security 提供了用户校验的功能,但是需要开发者提供一个UserDetailsService,主要作用就是给spring security返回用户信息,让其进行校验,同时定义密码编译器?4、初始化spring security 环境

5、spring security 授权,无权限返回都是403

四、spring boot 集成 spring security

只要引入,即可:

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

简单的配置类:

package com.example.demo.conf;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

/**
 * spring security configuration
 */
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Bean
    @Override
    public UserDetailsService userDetailsService(){
        InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
        //在内存中创建几个用户,正常应该自己些
        manager.createUser(User.withUsername("zhangsan").password("123").authorities("p1").build());
        manager.createUser(User.withUsername("lisi").password("456").authorities("p2").build());
        return manager;
    }

    /**
     * 密码的编码方式
     * @return
     */
    @Bean
    public PasswordEncoder passwordEncoder(){
        return NoOpPasswordEncoder.getInstance();
    }

    /**
     * 一些简单权限配置
     * @param http
     * @throws Exception
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                //访问 /r/r1 的用户必须有p1 权限
                .antMatchers("/r/r1").hasAnyAuthority("p1")
                //访问 /r/r2 的用户必须有p2 权限
                .antMatchers("/r/r2").hasAnyAuthority("p2")
                //所有的 /r开头的请求都进行权限验证
                .antMatchers("/r/**").authenticated()
                //都放行
                .anyRequest().permitAll()
                .and()
                //登陆可以使用表单提交
                .formLogin()
                //成功后跳转的地址
                .successForwardUrl("/login-success");
    }
}

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

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