Spring Security

SpringSecurity之短信验证码

廉价感情. 提交于 2020-04-24 08:23:04
短信验证码 短信验证码的发送 需要实现对手机的发送验证码,这里只是简单的处理,打印出来 定义接口 //发送短信的接口 public interface SmsCodeSender { void send(String mobile, String code); } //生成短信接口 public interface ValidateCodeGenerator { ValidateCode generate(ServletWebRequest request); } 实现接口 //发送短信的接口的实现 public class DefaultSmsCodeSender implements SmsCodeSender { /* (non-Javadoc) * [@see](https://my.oschina.net/weimingwei) com.imooc.security.core.validate.code.sms.SmsCodeSender#send(java.lang.String, java.lang.String) //生成短信接口的实现 [@Override](https://my.oschina.net/u/1162528) public void send(String mobile, String code) { System.out.println("向手机

基于spring-security-oauth2实现单点登录(持续更新)

廉价感情. 提交于 2020-04-23 11:26:27
##基于spring-security-实现数据库版## 文章代码地址:[链接描述][1]可以下载直接运行,基于springboot2.1.5,springcloud Greenwich版本实现。前面两篇写了认证oauth2通过内存 还有jdbc实现认证中心。接下来我们采用oauth2实现管理系统的单点登录。 说到这里,需要介绍几个注解: @EnableAuthorizationServer 该注解用来开启认证服务,使用该注解表明自己是一个认证服务。 @EnableResourceServer 该注解要用来开启资源保护,表明自己是资源服务器受认证服务保护。 @EnableOAuth2Sso 该注解表示自己是oauth2客户端,也即单点登录客户端 @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true) spring-security默认禁用注解,使用该注解来判断用户对某个控制层的方法是否具有访问权限 好来,注解介绍完了,闲话少说。我们开始今天的主题“单点登录”。 (1)创建sso-client项目,修改maven依赖: 因为,是web项目需要添加maven依赖。 (2)在启动类加上@EnableOAuth2Sso注解,表明自己是客户端 (3

新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚

ε祈祈猫儿з 提交于 2020-04-22 09:01:02
新书上线 大家好,笔者的新书《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》已上线,此书内容充实、材质优良,乃家中必备垫桌脚垫菜盘之良器,欢迎大家无情购买使用,欢迎大家共同学习交流,欢迎大家提出改进意见。 内容简介: 本书从项目实践出发,手把手、心贴心地带领读者从零开始,一步一步地开发出功能相对完整的权限管理系统,从而深入掌握当前主流的Spring Boot + Spring Cloud + Vue前后端集成开发技术。 全书分为三篇共32章。第一篇为系统介绍篇,对系统的功能、架构和界面进行介绍,对系统的安装运行给出指南,对涉及的关键技术进行简单介绍。第二篇为后端实现篇,从数据库设计和搭建开发环境开始,全面细致地讲解权限管理系统的后端实现全过程。第三篇为前端实现篇,从搭建开发环境开始,全面细致地讲解权限管理系统的前端实现全过程。 本书适合前后端开发人员和全栈工程师阅读,也适合高等院校和培训学校相关专业的师生教学参考。 购买途径 通过天猫、京东、当当等各大网站,搜索 “Spring Boot+Spring Cloud+Vue+Element” 或 “手把手教你开发权限管理系统” 等相关关键字,即可检索到相关图书购买链接,为方便大家查找,下面附上一些简单查找流程示例。 京东 参考链接: https://item.jd.com

ff4j 一些核心概念

非 Y 不嫁゛ 提交于 2020-04-21 16:59:27
了解ff4j 的一些核心概念我们就可以更好的学习以及使用ff4j,以下是一些学习,整理 Feature Feature 主要是用表示应用的一个功能,通过一个唯一的id标示(uid),主要目的是在运行时可以按需启用以及禁用 特性,FF4j 添加了一些属性(比如描述,可选的grouoname)访问控制列表,以及一些flipping 策略,同时我们也可以 添加自己的自定义属性 参考代码使用 // Simplest declaration Feature f1 = new Feature( "f1"); ​ // Declare with description and initial state Feature f2 = new Feature( "f2", false, "sample description"); ​ // Illustrate ACL & Group Set < String > permission = new HashSet < String >(); permission. add( "BETA-TESTER"); permission. add( "VIP"); Feature f3 = new Feature( "f3", false, "sample description", "GROUP_1", permission); ​ // Custom

权限框架之Shiro详解(非原创)

扶醉桌前 提交于 2020-04-21 07:14:51
文章大纲 一、权限框架介绍 二、Shiro基础介绍 三、Spring Boot整合Shiro代码实战 四、项目源码与资料下载 五、参考文章 一、权限框架介绍 1. 什么是权限管理   权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。   权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。 1.1 用户身份认证   身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确。对于采用指纹等系统,则出示指纹;对于硬件Key等刷卡系统,则需要刷卡。 用户名密码身份认证流程: 1.2 授权流程   授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的。 2. 常见权限框架 2.1 Shiro简介   Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大

Spring Boot 集成 Spring Security 入门案例教程

Deadly 提交于 2020-04-21 02:34:37
###前言 本文作为入门级的DEMO,完全按照官网实例演示; 项目目录结构 Maven 依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies>

精通Spring Boot ——第十七篇:Spring Security自定义登录逻辑

耗尽温柔 提交于 2020-04-18 05:54:56
本章的内容较为简单,暂时先不涉及数据库的操作,只是为了演示,在Spring Security 中,如何来处理用户登录的流程。 想要了解用户登录的逻辑,我们只需要处理三个问题:a.用户信息获取逻辑 b.如何校验用户信息 c.处理用户加密解密 用户信息获取 UserDetailsService 用户信息的获取逻辑在Spring Security 中是被封装在一个叫UserDetailsService的接口里的,在这个接口中,只有一个方法,loadUserByUsername()。接口接收一个String参数,返回一个UserDetails对象。顾名思义,就是要传递我们的username,然后根据这个username去找到这个User的用户信息。如果找不到这个用户,就会抛出一个UsernameNotFoundException,Spring Security 捕获到这个异常,就会返回相应的错误信息。 package org.springframework.security.core.userdetails; public interface UserDetailsService { UserDetails loadUserByUsername(String var1) throws UsernameNotFoundException; } 接下来,我们自己写一个类

【翻译】Spring 5 WebFlux入门

杀马特。学长 韩版系。学妹 提交于 2020-04-17 10:16:29
【推荐阅读】微服务还能火多久?>>> 原文链接: Guide to Spring 5 WebFlux | Baeldung 1. 概览 Spring WebFlux 框架是 Spring 5的一部分,他为 web 应用提供了响应式编程的支持。 在本文中,我们将使用响应式注解*RestController*和*WebClient*创建一个小的 REST 应用, 我们还将研究如何使用Spring Security保护我们的响应式端点。 2. Spring WebFlux 框架 ** Spring WebFlux内部使用Project Reactor及其发布者实现 - Flux和Mono。** 这个新框架支持下面两种编程模型: - 基于注释的响应式组件 - 函数级别的路由和处理 在这里,我们将重点关注基于注释的响应式组件,正如我们已经研究过的[functional style – routing and handling]( Introduction to the Functional Web Framework in Spring 5 | Baeldung ). 3. 依赖 让我们从spring-boot-starter-webflux依赖开始,它包含了所有其他必需的依赖: 用于基本Spring Boot应用程序设置的spring-boot和spring-boot-starter

spring boot 基于 shiro / spring security 实现自定义登录

隐身守侯 提交于 2020-04-16 18:21:26
【推荐阅读】微服务还能火多久?>>> shiro shiro 配置文件 /** * Shiro配置 */ @Configuration @RequiredArgsConstructor public class ShiroConfig { private final ShiroService shiroService; private final SysUserTokenService sysUserTokenService; private final SysCaptchaService sysCaptchaService; private final Gson gson; /** * 自定义权限管理 * * @see ShiroConfiguration * @see DefaultSecurityManager */ @Bean("securityManager") public DefaultWebSecurityManager defaultWebSecurityManager() { DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager(); // realms ArrayList<Realm> realms = new ArrayList<>();

精通Spring Boot——第十八篇:Spring Security 自定义认证流程

心不动则不痛 提交于 2020-04-14 14:33:23
【推荐阅读】微服务还能火多久?>>> 前两篇简单介绍了一下使用Spring Security 使用Http Basic登录,以及Spring Security如何自定义登录逻辑。这篇文章主要介绍如何使用handler来定义认证相关的流程。 先做一些自定义的操作,如配置自定义登录页,配置登录请求URL等。 当我们使用Spring Security时,它会为我们提供一个默认的登录页面,这显然没法满足我们的需求,那如何来自定义页面呢?请看代码: /** * @author developlee * @since 2018/11/27 21:58 */ @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { private final MyLoginHandler myLoginHandler; private final MyLogoutHandler myLogoutHandler; @Bean public BCryptPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } @Autowired private