Spring Security

聊聊Spring Boot Actuator

不羁的心 提交于 2020-04-29 15:53:28
概述 在本文中,我们将介绍Spring Boot Actuator。我们将首先介绍基础知识,然后详细讨论Spring Boot 1.x和2.x中的可用内容。 我们将在Spring Boot 1.x中学习如何使用,配置和扩展此监视工具。然后,我们将讨论如何利用反应式编程模型使用Boot 2.x和WebFlux进行相同的操作。 自2014年4月起,Spring Boot Actuator随Spring Boot一起发布。 随着SpringBoot2的发布,执行器进行了重新设计,并添加了新的激动人心的端点。本指南分为三个主要部分: 什么是执行器(Actuator) Spring Boot 1.x Actuator Spring Boot 2.x Actuator 👋: 执行器==Actuator 什么是执行器(Actuator) 本质上,执行器为我们的应用带来了生产就绪功能。 通过对他的依赖,监视我们的应用程序、收集度量、了解流量或数据库的状态变得轻松简单: 这个库的主要好处是,我们可以获得生产级工具,而不必亲自实现这些功能。Actuator主要用于公开有关正在运行的应用程序的操作信息-运行状况,指标,信息,转储,环境等。它使用HTTP端点或JMX Bean使我们能够与其交互。一旦在类路径上使用执行器,便可以立即使用几个端点。与大多数Spring模块一样

SpringBoot与SpringSecurity整合的初使用

狂风中的少年 提交于 2020-04-29 12:56:17
SpringBoot与SpringSecurity整合的初使用 1.背景:   最近的一个项目中,需要做web页面的管理后台,需要对不同角色进行不同的管理,特此研究了一下SpringSecurity的使用。 2.正题:   1.采用框架:springboot,springsecurity,jpa   2.采用idea的spring initializr 初始化一个springboot项目,勾选模块为web,securiy,和jpa,jdbc。   3.表结构:      总共有三张表,分别为user,user_authorities,authentication       user表              authentication表              user_authorities表:           4.代码开始:     4.1 首先,创建jpa对应的实体类:       这个就不贴代码了,根据上面的表结构创建对应的类,加上jpa对应的注解即可     4.2 创建Repository类,继承JpaRepository     4.3 创建SpringSecurity配置类WebSecurityConfigurerAdapter:        @EnableWebSecurity public class MySecurityConfig

SpringSecurity在Springboot下使用的初步体验

南笙酒味 提交于 2020-04-29 12:08:05
  SpringSecurity曾经在十年前非常火热,只要是做权限系统,当时几乎非用它不可,记得是在XML文件里一堆的配置。曾几何时,Shiro冒了出来,以其简洁和轻量的风格慢慢地捕获了众多码农的心,从此SpringSecurity似乎成了历史文物。   但事物总是在发展变化的,这两年随着 SpringBoot的兴起,由于SpringSecurity与SpringBoot都是Spring家族成员,在整合上具备天然优势,且SpringSecurity功能相对Shiro更加完善,对OAUTH认证支持得比较好,所以在微服务架构中又得到了广泛应用。 在SpringBoot下使用SpringSecurity非常的简单,只要保证在项目的classpath下引入了相应的jar包就可以了。启动类上也无需添加什么,下面看一个SpringSecurity应用的最简项目: 1. pom配置 < parent > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-parent </ artifactId > < version > 2.1.2.RELEASE </ version > </ parent > < groupId > cn.xxx.yyyy </ groupId > <

SpringBoot入门 (十四) Security安全控制

此生再无相见时 提交于 2020-04-29 12:07:51
本文记录在SpringBoot使用SpringSecurity进行安全访问控制。 一 什么是Security   Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。   目前在我们项目中使用的是RBAC基于角色的权限访问控制(Role-Based Access Control),用户与角色关联,角色与权限相关联,用户通过角色间接的得到权限。关系如下图   用户:权限的拥有者   角色:一些权限的集合   权限:操作的对象或资源   用户拥有某种角色,从而拥有了对资源的访问操作权限,在访问时SpringSecurity会对所有请求进行拦截,有权限的请求放行,否则拦截。 二 SpringBoot使用SpringSecurity   SpringBoot对SpringSecurity做了支持,要使用的话很方便,只需要引入相应的依赖(spring-boot-starter-security)就可以了。  

在Spring Boot中使用Spring Security实现权限控制

跟風遠走 提交于 2020-04-29 11:05:34
Spring Boot框架我们前面已经介绍了很多了,相信看了前面的博客的小伙伴对Spring Boot应该有一个大致的了解了吧,如果有小伙伴对Spring Boot尚不熟悉,可以先移步这里 从SpringMVC到Spring Boot ,老司机请略过。OK,那我们今天要说的是Spring Boot中另外一个比较重要的东西,那就是Spring Security,这是一个专门针对基于Spring的项目的安全框架,它主要是利用了我们前文介绍过的的AOP( Spring基础配置 )来实现的。以前在Spring框架中使用Spring Security需要我们进行大量的XML配置,但是,Spring Boot在这里依然有惊喜带给我们,我们今天就一起来看看。 毫无疑问,Spring Boot针对Spring Security也提供了自动配置的功能,这些默认的自动配置极大的简化了我们的开发工作,我们今天就来看看这个吧。 创建Project并添加相关依赖 Project的创建和前文一样,唯一要注意的地方就是创建的时候添加的依赖不同,如下图: OK,创建成功之后添加相关依赖,数据库我这里使用MySql,所以添加MySql驱动,然后要添加Spring Security的支持,所以还要添加Spring Security的依赖,如下: < dependency> < groupId>org

直接使用security.basic.path无效|——springboot2.0以上的security的配置

馋奶兔 提交于 2020-04-29 11:05:19
问题 springcloud 版本 为 Finchley.RELEASE springboot 版本为 2.0.3.RELEASE 现在有需求,/swagger-ui.html 页面需要添加登录认证,但是本来的接口不需要登录认证 升级springboot之前的做法是直接在application.yml 文件中添加以下配置: security: basic: enabled: true # 启用SpringSecurity的安全配置项 path: /swagger-ui.html user: name: aijianzi # 认证用户名 password: course # 认证密码 role: # 授权角色 - USER 升级后这种配置就出错了,连编译都出错,如下图: 解决过程 查找源代码,找到如下: 来自: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide Security Spring Boot 2 greatly simplifies the default security configuration and makes adding custom security easy. Rather than having several security

Spring Security学习

孤街浪徒 提交于 2020-04-29 11:05:03
Getting Start 官方文档学习 Spring Security Reference Spring Security OAuth Spring Boot Reference Guide Spring Cloud Security 基本概念 Spring security解决的问题 认证(你是谁) 授权(你能干什么) 开启一些主要的安全防护功能 Web Security Maven dependency org.springframework.security : spring-security-web org.springframework.security : spring-security-config @EnableWebSecurity 为所有的URL加入身份认证,并提供一个登陆界面 防止CSRF[Cross-Site Request Forgery] : 跨站域请求伪造 防止Session Fixation : 通过修改登录后的Session id防止Session 固定 Security Header integration 开启HSTS功能,使浏览器使用https X-Content-Type-Options: nosniff :禁用浏览器类型猜测 X-XSS-Protection: 1; mode=block : 开启浏览器XSS保护 x-frame

到底新手如何学习Java 不同阶段需要学什么内容

只愿长相守 提交于 2020-04-28 16:23:01
  到底新手如何学习Java?不同阶段需要学什么内容?当然是需要系统的全面的去掌握。毕竟Java作为技术型知识,很多时候不能提留在纸上谈兵,更需要将基础打好。那么下面就跟着千锋小编一起来看看!   Java学习路线大致分为四大阶段,具体内容如下:   第一阶段——Java基础   Java的学习内容从计算机基本概念,DOS命令开始,为你入门编程语言扫盲,什么是程序,如何配置Java开发环境,Java编程的过程是怎样的,Java有什么物特点,程序是如何运行的,这些你都可以在这里得到答案。   Java编程的基础语法,共分为10个知识点,我们将学习变量,基本数据类型,进制,转义字符,运算符,分支语句和循环语句等,以达到训练基础语法和逻辑能力的目的。还有对数组、面向对象和异常处理等。   第二阶段——JavaWeb   Web前端开发基础和框架、Servlet和JSP在Web后端的应用、Web后端开发相关专题、MVC和分层架构以及项目开发流程及CASE工具的使用等。   第三阶段——Java框架   框架是程序中另一种存储数据的方式,比直接使用数组来存储更加的灵活,在项目中应用十分广泛。同时,框架整合开发(SSH/SSS)、RESTful架构和移动端接口设计、第三方接口和在线支付功能、网站安全和Spring Security应用实战、复杂用户交互处理和Spring Web Flow的应用

Spring Security 实战干货: 登录成功后返回 JWT Token

别来无恙 提交于 2020-04-28 11:24:43
文章目录 1. 前言 2. 流程 3. 实现登录成功/失败返回逻辑 3.1 AuthenticationSuccessHandler 返回 JWT Token 3.2 AuthenticationFailureHandler 返回认证失败信息 4. 配置 5. 验证 5.1 登录成功结果 5.2 登录失败结果 6. 总结 1. 前言 欢迎阅读 Spring Security 实战干货 系列文章 , 上一文 我们实现了 JWT 工具。本篇我们将一起探讨如何将 JWT 与 Spring Security 结合起来,在认证成功后不再跳转到指定页面而是直接返回 JWT Token 。 本文的** DEMO 可通过文末的方式获取** 2. 流程 JWT 适用于前后端分离。我们在登录成功后不在跳转到首页,将会直接返回 JWT Token 对(DEMO中为 JwtTokenPair ),登录失败后返回认证失败相关的信息。 3. 实现登录成功/失败返回逻辑 如果你看过 Spring Security 实战干货: 玩转自定义登录 将非常容易理解下面的做法。 3.1 AuthenticationSuccessHandler 返回 JWT Token AuthenticationSuccessHandler 用于处理登录成功后的逻辑,我们编写实现并注入 Spring IoC 容器: /** *

spring security:ajax请求的session超时处理

寵の児 提交于 2020-04-28 09:09:52
原文:https://www.cnblogs.com/yanduanduan/p/6252203.html 当前端在用ajax请求时,如果没有设置session超时时间并且做跳转到登录界面的处理,那么只是靠后台是很难完成超时的一系列动作的;但是如果后台 没有封装一个ajax请求公共类,那么在ajax请求上下功夫解决session超时的问题是不行的,只有考虑在后台或者前台通过全局来进行对ajax请求超时的 处理了。 本人用的是 spring security 来处理的,想只通过后台来进行处理,但是尝试了很多种办法,但是一直没有成功,session一超时,前台页面就一直显示遮 罩层,只有在刷新后才能正常操作。最终还是考虑在前台上下功夫,通过使用jquery的全局事件,就搞定了。 1.在spring-security.xml配置session超时时触发的方法(配置在<security:http>标签内) <security:http> <security:session-management invalid-session-url="/timeout"></security:session-management> </security:http> 2.超时处理方法代码 @RequestMapping(value = "/timeout") public void