技术标签: spring boot java 安全 springsecurity
Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模
块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要
引入 spring-boot-starter-security 模块,进行少量的配置,即可实现强大的
安全管理!
使用步骤:
1:加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2:编写配置类
package com.dongmu.config;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
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.crypto.bcrypt.BCryptPasswordEncoder;
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
/*链式编程*/
/*授权*/
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/").permitAll()
.antMatchers("/level1/**").hasRole("vip1")
.antMatchers("/level2/**").hasRole("vip2")
.antMatchers("/level3/**").hasRole("vip3");
http.formLogin().loginPage("/toLogin");
http.csrf().disable();
http.logout().logoutSuccessUrl("/toLogin");
http.rememberMe().rememberMeParameter("remember");
}
/*认证*/
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
.withUser("dongmu").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2")
.and()
.withUser("root").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2","vip3")
.and()
.withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");
}
}
更多详情:https://blog.csdn.net/Sgxlebron/article/details/122757103
文章浏览阅读48次。1.Linux目录结构为树状结构,最顶层的目录为跟目录”/”,其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们。 2.绝对路径与相对路径 绝对路径写法:由根目录“/”写起,例如:/usr/share/man这个目录; 相对路径写法:不是由“/”写起,例如要由/usr/share/man转移到/usr/share/doc,可以写成:cd ../doc 。不过值得注意的是,假如...
文章浏览阅读940次。卷积神经网络1 卷积2 卷积神经网络基本原理2.1 卷积层2.2 激活函数2.3 池化层2.4 全连接层2.5 输出层2.6 卷积神经网络的训练3 经典卷积神经网络3.1 LeNet-53.2 AlexNet3.3 VGGNet3.4 Inception Net3.5 ResNet3.6 DenseNet4 主要应用卷积神经网络是指哪些至少在一层中使用卷积运算代替一般的矩阵乘法运算的神经网络,是一种专门用来处理具有类似网格结构的数据的神经网络,例如图像数据。该网络使用了卷积这种数学运算,这是一种特殊的线性_使用卷积层进行特征映射,将特征图映射到特定尺寸
文章浏览阅读1.7w次。在有mysql数据库的主机上备份好数据表后,我们要将它远程拷贝到本地分析,毕竟大多数情况下数据分析不能影响项目运营。 说到远程拷贝第一个想到的自然是scp,这个东西专为远程拷贝设计的 ,传送过程也使用了ssh加密,但是使用scp要手动输入用户名和密码 网上有很多解决的办法,这里我使用 的是expect这个软件,说道expect这个软件 自然是异常强大,这里我们也只是使用到冰山一角,不去详细讲_scp 用户名密码
文章浏览阅读1.7k次。org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springSecurityFilterChain' defined in class path resource [org/springframework/security/config/annotation/web/c..._java.lang.classnotfoundexception: javax.xml.bind.jaxbexception
文章浏览阅读244次。北京西普阳光教育科技股份有限公司(简称“西普教育”)是国内有名的网络安全教育培训机构。如果你不知道这家公司,或许你听说过网络安全行业有名的在线平台“实验吧”——就是该公司旗下品牌。西普教育和中国信息安全测评中心联合开展的国家信息安全水平考试(NISP)算是国内网络安全行业有影响力的一项行业认证。 昨天晚上我打开NISP网站想看看最新资讯。网站首页加载..._nisp官网资料下载不了
文章浏览阅读1.9w次。123213213
文章浏览阅读96次。前面花了些时间终于将Python的环境搭建好了,对于Python开发工具的选择也是花了笔者较多的时间。对于Python笔者也只是初学,对于开发Python工具的选择笔者选用的是Eclipse+PyDev插件开发的方式。在这里我还是要介绍一下小编的学习交流的群,有什么不懂的问题,都可以在群里踊跃发言,需要啥资料随时l联系梦雅获取自己想要的资料。这个python福利伪就是:mengy7762 小编期待大家一起交流讨论,讲实话还是一个非常适合学习的地方的。各种入门资料啊,进阶资料啊,框架资料啊 爬虫等等_学习python思考与讨论
文章浏览阅读658次。clc;clear all;close all;%初始化dataSize=13;rand('state',1);K=1;dataFrame=rand(dataSize,2).*0.2;% plot(dataFrame(:,1)',dataFrame(:,2),'x');CATEGORY = zeros(dataSize,5);%单个站点状态描述矩阵(4个特征)categoryId =..._szb,wy,htzzce
文章浏览阅读534次。1. 寻找已知物体在FLANN特征匹配的基础上,可以通过利用Homography(单应性矩阵)映射寻找物体。具体步骤如下: ①使用findHomography函数找到匹配上的关键点之间的变换; ②使用perspectiveTransform函数来映射点。1.1 findHomography()函数此函数作用是找到并返回原图像与目标图像之间的透视变换H//! computes..._特征匹配 findhomo
文章浏览阅读130次。没有什么“通用类型指针”,void*指针只能保存对象指针(也就是数据),将函数指针转换为void*指针式不可移植的
文章浏览阅读68次。大家都知道,刚开始搞extjs的时候,很是有点困难,所以本人在新手刚入门后准备了这个系列的文章。个人认为用extjs做后台很不错,布局比较完美!1.Ext.MessageBox.alert()方法 有四个参数,为简单起见,主要介绍前面三个参数: alert( title , msg , function(){} ) 其中title,msg为必选参数..._ext2.0 ext.msg.alert早google遮罩层被覆盖的问题
文章浏览阅读1.1k次。setattr(对象/类, 属性名, 属性值):添加 对象/类 的属性和值, 如果属性存在,修改 对象/类 的属性值。hasattr(对象/类, 属性名): 对象或者类是否有这个属性,有就是True, 没有就是False。要在代码的运行过程当中,才知道要给类/对象、添加/删除/修改额外的属性。delattr(对象/类, 属性名): 删除 对象/类 的属性和值。getattr(对象/类, 属性名): 获取 对象/类 的属性值。类的属性和方法,此处统一称为atrribute(属性)_python 动态创建类属性