SpingSecurity

SpringSecurity是一个框架,它关注于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring安全性的真正威力在于它可以多么容易地扩展以满足定制需求

Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实标准。

Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入 spring-boot-starter-security 模块,进行少量的配置,即可实现强大的安全管理!

记住几个类:

  • WebSecurityConfigurerAdapter:自定义Security策略

  • AuthenticationManagerBuilder:自定义认证策略

  • @EnableWebSecurity:开启WebSecurity模式

Spring Security的两个主要目标是 “认证” 和 “授权”(访问控制)。

“认证”(Authentication)

身份验证是关于验证您的凭据,如用户名/用户ID和密码,以验证您的身份。

身份验证通常通过用户名和密码完成,有时与身份验证因素结合使用。

“授权” (Authorization)

授权发生在系统成功验证您的身份后,最终会授予您访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)的完全权限。

认证和授权

常见的http码

405:请求方式不一致,post,get,滥用415:不支持媒体类型,类型不匹配403:权限不允许500:后台代码错误404:请求路径不存在400:请求发送的参数是非法的,不正确的

Spring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入spring-boot-starter-security模块,进行少量的配置,即可实现强大的安全管理


SecurityConfig.java

package com.chen.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 {//授权@Overrideprotected void configure(HttpSecurity http) throws Exception {//首页所有人可以访问,功能页只有对应有全向的人才能访问//链式编程 http认证请求  添加一个地址 选择所有人//请求授权的规则     //只有vip*下的才可以访问http.authorizeRequests().antMatchers("/").permitAll().antMatchers("/level1/**").hasRole("vip1").antMatchers("/level2/**").hasRole("vip2").antMatchers("/level3/**").hasRole("vip3");//没有权限默认会跳到登录页面   定制跳转页面   自定义参数http.formLogin().loginPage("/toLogin").usernameParameter("user").passwordParameter("pwd").loginProcessingUrl("/login");//开启注销功能 跳转到首页  参数介绍 移除所有的cookie  清空所有的session(会话)// http.logout().deleteCookies("remove").invalidateHttpSession(true);//默认注销去指定页面http.logout().logoutSuccessUrl("/");//关闭跨站脚本请求攻击的功能http.csrf().disable();//开启记住我功能  自定义接受前端参数  cookie默认保存2周http.rememberMe().rememberMeParameter("remember");}//认证//密码未加密  反编译为class文件@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {//内存中认证auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder()).withUser("chenchao").password(new BCryptPasswordEncoder().encode("123456")).roles("vip2","vip3").and().withUser("admin").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2","vip3").and().withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");}
}

需要导入的包
pom.xml

 <!--springsecurit与thymeleaf整合包--><dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-springsecurity5</artifactId><version>3.0.4.RELEASE</version></dependency><!--web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--springsecurity--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><!--thymeleaf--><dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring5</artifactId></dependency><dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-java8time</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>

官方文档:https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle/#using-boot-starter

SpingSecurity配置相关推荐

  1. springCloud 初探

    分布式系统理论 分布式系统是若干个独立计算机的集合,这些计算机的集合,这些计算机对于用户来说就像单个相关系统.分布式系统是由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统.分 ...

  2. nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

    nginx配置http.https访问 要设置https访问需要从对应的云厂商申请证书,并下载Nginx证书到服务器. 我这里从阿里云申请了免费的域名证书,然后将证书放置在服务器的/etc/ssl/. ...

  3. 在kotlin companion object中读取spring boot配置文件,静态类使用@Value注解配置

    在kotlin companion object中读取配置文件 静态类使用@Value注解配置 class Config {@Value("\${name}")fun setNam ...

  4. 大数据学习01——配置虚拟机节点相关网络

    1.配置mac地址和ip (1)更改适配器设置 找到这个后开始设置windows中的网络连接 (2)接着对三台虚拟机的mac地址和ip进行设置 1.mac地址设置 进入linux节点中的这个位置进行设 ...

  5. plsql配置多数据源,想换哪个换哪个

    现在的公司内部普遍使用plsql对数据库进行管理.而数据库非常多,从测试到线上环境数据库那么多,我们通常使用同一配置管理,便于切换.那么配置数据库连接就成为了很重要的一步. 1.安装plsql (这里 ...

  6. Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!

    最近在给同学弄毕业设计的数据库,因为oracle在个人电脑上极不稳定,所以他的电脑数据库崩溃了,这时候我就在docker上为他拉了一个oracle,解决了问题. docker的安装共有以下几步,实测没 ...

  7. Linux下tomcat的安装与卸载以及配置(超简单)

    无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...

  8. Maven安装与配置(最实用!!!)eclipse中配置maven

    Maven安装与配置 一.需要准备的东西 JDK Eclipse(本章主要是在eclipse中进行配置maven) Maven程序包 二.下载与安装 1. 前往maven下载最新版的Maven程序: ...

  9. CentOS Docker安装配置部署Golang web helloworld

    目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker部署Golang web helloworld 四.Docker与虚拟机的区别 五. ...

最新文章

  1. 折返(Reentrancy)VS线程安全(Thread safety)
  2. android studio 2.1正式版,Android Studio 1.2 正式版发布
  3. java自学语法_Java自学笔记(一):基础知识
  4. 关于WebBrowser.DocumentCompleted事件
  5. caffe学习(三):caffe开发环境安装(Ubuntu)
  6. java程序一写文件就崩溃_为什么直接修改java的.class文件会导致程序崩溃
  7. 读书印记 - 《混乱:如何成为失控时代的掌控者》
  8. red hat linux综合实验报告,实验一 Red Hat Linux 9.doc
  9. 链上结构化产品Ribbon将推出基于看跌期权的资管产品Puts Theta Vault
  10. 硬盘坏道隔离工具fbdisk_如何屏蔽硬盘坏道 屏蔽硬盘坏道方法介绍【详解】
  11. 《Python数据可视化编程实战》—— 1.3 安装virtualenv和virtualenvwrapper
  12. PDF文件编辑并去除水印
  13. 有什么软件可以测试u盘的真假,U盘真假怎么检测|教你检测U盘真假的方法
  14. 直观理解Law of Total Variance(方差分解公式)
  15. 计算机应用基础试题答案截图,《计算机应用基础》试题二
  16. UE5 预览版载具模板工程车不能移动的问题
  17. 怎么用表格做出html网页,用表格制作网页
  18. 《人生七年》纪录片总结
  19. UTC相关的时区转换
  20. NOIP2014 Day1T1生活大爆炸版石头剪刀布 模拟

热门文章

  1. java mediainfo.dll_mediainfo.dll怎么用
  2. 小米MIUI10企业模式上线,万物基于MIUI正在向你靠近
  3. php影视导航系统,飞飞影视导航系统 FeiFeiCms v3.7.180327
  4. 诺基亚安卓手机 Nokia X 现身越南在线商店
  5. 也谈大公司病2——减少错误不等于增加成功
  6. 【说一说】Hystrix停更不停用,慢慢进入维护时代
  7. 初使selenium
  8. Linux 使用Benq 4300U扫描仪
  9. 二.Laravel5.6教程之——Laravel Debugbar扩展
  10. 华为FreeBuds pro2大风场景下降噪差原因