Java教程

spring secutity 入门 1

本文主要是介绍spring secutity 入门 1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

SpringSecurity 特点:

⚫ 和 Spring 无缝整合。

⚫ 全面的权限控制。

⚫ 专门为 Web 开发而设计。

    ◼旧版本不能脱离 Web 环境使用。

    ◼新版本对整个框架进行了分层抽取,分成了核心模块和 Web 模块。单独 引入核心模块就可以脱离 Web 环境。

⚫ 重量级。

 

 

 

 


 

创建SpringBoot项目,导入依赖

你随便访问个页面会被拦截:

 

 

 

账号默认user  密码控制台有

 

 

 


 

 

他本质就是个过滤器链

介绍三个比较基本的过滤器:

FilterSecurityInterceptor:是一个方法级的权限过滤器, 基本位于过滤链的最底部。

ExceptionTranslationFilter:是个异常过滤器,用来处理在认证授权过程中抛出的异常

UsernamePasswordAuthenticationFilter :对/login 的 POST 请求做拦截,校验表单中用户 名,密码。

可以去看看源码。

 

基本原理:

 

 

 

设置账户名和密码【配置设置】

直接在配置中配置即可,例:

 

 

 

这种方式非常2B!

 

 

配置类配置账号密码:

package com.example.springsecurity.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 1.继承 WebSecurityConfigurerAdapter
 * 2.如果需要加密密码就 BCryptPasswordEncoder 加密【看代码】  需要手动 new 一个 PasswordEncoder
 * 3.设置账户名,密码,角色
 */

@Configuration
public class securityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        //加密
        String password = passwordEncoder.encode("xianyu123");
        //下面密码已加密
        auth.inMemoryAuthentication().withUser("xianyu").password(password).roles("角色");
    }

    @Bean
    PasswordEncoder passwordEncoder(){
    return new BCryptPasswordEncoder();
    }
}
View Code

 

自定义编写账户密码:

第一步,也是继承WebSecurityConfigurerAdapter,然后重写configure,然后看下图:

 

这篇关于spring secutity 入门 1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!