Spring Security

Spring Boot 整合Swagger 2文档

蓝咒 提交于 2020-08-15 07:35:36
在实际开发过程中,前后端分离后,那么势必存在如何在多人协作中共享和及时更新API开发接口文档的问题,维护接口文档就变成了必不可少的工作,在初期开发的时候接口一直处在变化中,每次接口更新,都要去单独维护接口文档,做过的老铁都知道这是一件多么令人脑瓜子疼得事。使用swagger2集成文档,有多个优势: 功能丰富 :支持多种注解,自动生成接口文档界面,支持在界面测试API接口功能; 及时更新 :开发过程中养成写注释的习惯,就可以及时的更新API文档; 整合简单 :通过添加pom依赖和简单配置,内嵌于应用中就可同时发布API接口文档界面,不需要部署独立服务。 引入依赖 首先是创建一个Spring Boot项目,引入web依赖,引入swagger2相关的依赖,如下: web依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> swagger2依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency>

基于权限安全框架Shiro的登录验证功能实现

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-15 04:08:21
目前在企业级项目里做权限安全方面喜欢使用Apache开源的Shiro框架或者Spring框架的子框架Spring Security。 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。 Shiro框架具有轻便,开源的优点,所以本博客介绍基于Shiro的登录验证实现。 在maven里加入shiro需要的jar <!--shiro start--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-all</artifactId> <version>1.2.3</version> </dependency> <!-- shiro end--> 在web.xml加上Shiro过滤器配置: <!-- Shiro过滤器配置 start --> <filter> <filter-name>shiroFilter</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true<

HowToDoInJava Spring 教程·翻译完成

南笙酒味 提交于 2020-08-14 18:01:38
原文: HowToDoInJava 协议: CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 目录 Spring 5 Spring 5 教程 Spring 5 的新功能和增强功能 Spring 使用注解配置 Bean Spring bean – XML 配置 Spring – @Lazy 加载 Spring DispatcherServlet – 它是如何工作的? Spring @PostMapping 示例 – @GetMapping 示例 Spring 5 MVC + Hibernate 5 示例 Spring 和 CORS Spring Security 5 – Java 配置 Spring Security 5 登录表单示例 Spring Spring 教程 Spring – IoC 容器 Spring – 控制反转与依赖注入 Spring 5 – Bean 范围 Spring – Bean 生命周期 Spring BeanPostProcessor 示例 SpringBean 自动装配 – @Autowired Spring 注解 Spring – 原型注解 Spring @Scheduled – 安排任务的 4 种方法 Spring 定时器任务 Spring – 应用事件 Spring

Spring Security 注解

倖福魔咒の 提交于 2020-08-14 10:59:29
需求缘起 在之前的章节中我们介绍过通过注解的方式进行权限的控制了,这里再详细的讲解下方法级安全的几个注解。 一、注解式方法级安全开启 需要在WebSecuirtyConfig添加配置: @Configuration @EnableWebSecurity //启用Spring Security. ////会拦截注解了@PreAuthrize注解的配置. @EnableGlobalMethodSecurity(prePostEnabled= true) public class WebSecurityConfig extends WebSecurityConfigurerAdapter{ } 二、允许的注解 这里主要@PreAuthorize, @PostAuthorize, @Secured这三个注解可以使用。 2.1 @Secured 当@EnableGlobalMethodSecurity(securedEnabled=true)的时候,@Secured可以使用: @GetMapping ( "/helloUser" ) @Secured ({ "ROLE_normal" , "ROLE_admin" }) public String helloUser () { return "hello,user" ; } 说明

Spring Security 实战干货:图解用户是如何登录的

拜拜、爱过 提交于 2020-08-14 09:31:46
1. 前言 欢迎阅读Spring Security 实战干货系列文章,在集成 Spring Security 安全框架的时候我们最先处理的可能就是根据我们项目的实际需要来定制注册登录了,尤其是 Http 登录认证。根据以前的相关文章介绍, Http 登录认证由过滤器 UsernamePasswordAuthenticationFilter 进行处理。我们只有把这个过滤器搞清楚才能做一些定制化。今天我们就简单分析它的源码和工作流程。 2. UsernamePasswordAuthenticationFilter 源码分析 UsernamePasswordAuthenticationFilter 继承于 AbstractAuthenticationProcessingFilter (另文分析)。它的作用是拦截登录请求并获取账号和密码,然后把账号密码封装到认证凭据 UsernamePasswordAuthenticationToken 中,然后把凭据交给特定配置的 AuthenticationManager 去作认证。源码分析如下: public class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationProcessingFilter { // 默认取账户名、密码的key public static

Spring Boot + Security + JWT 实现Token验证+多Provider——登录系统

时间秒杀一切 提交于 2020-08-14 09:00:46
首先呢就是需求: 1、账号、密码进行第一次登录,获得token,之后的每次请求都在请求头里加上这个token就不用带账号、密码或是session了。 2、用户有两种类型,具体表现在数据库中存用户信息时是分开两张表进行存储的。 为什么会分开存两张表呢,这个设计的时候是先设计的表结构,有分开的必要所以就分开存了,也没有想过之后Security 这块需要进行一些修改,但是分开存就分开存吧,Security 这块也不是很复杂。 maven就是这两: < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-security </ artifactId > </ dependency > < dependency > < groupId > io.jsonwebtoken </ groupId > < artifactId > jjwt </ artifactId > < version > 0.9.0 </ version > </ dependency > 然后直接说代码吧,首先呢是实现dao层,这一层就不贴代码了,反正就是能根据用户名能返回用户信息就好了。 所以其实第一步是实现自己的安全模型: 这一步是实现UserDetails这个接口

恕我直言你可能真的不会java第7篇:像使用SQL一样排序集合

时光怂恿深爱的人放手 提交于 2020-08-14 06:33:26
在开始之前,我先卖个关子提一个问题:我们现在有一个Employee员工类。 [@Data](https://my.oschina.net/difrik) @AllArgsConstructor public class Employee { private Integer id; private Integer age; //年龄 private String gender; //性别 private String firstName; private String lastName; } 你知道怎么对一个Employee对象组成的List集合, 先按照性别字段倒序排序,再按照年龄的倒序 进行排序么?如果您不知道4行代码以内的解决方案(其实是1行代码就可以实现,但笔者格式化为4行),我觉得您有必要一步步的看下去。 一、字符串List排序 cities是一个字符串数组。 注意london的首字母是小写的。 List<String> cities = Arrays.asList( "Milan", "london", "San Francisco", "Tokyo", "New Delhi" ); System.out.println(cities); //[Milan, london, San Francisco, Tokyo, New Delhi] cities.sort

五天一体_企业权限管理(SSM整合)

与世无争的帅哥 提交于 2020-08-14 01:55:11
学于黑马程序员和传智播客联合做的教学项目 感谢 黑马程序员官网 传智播客官网 个人根据教程的每天的工作进度的代码和资料 密码:cti5 b站在线视频 微信搜索"艺术行者",关注并回复关键词"企业权限管理"获取视频和教程资料! 目录 功能介绍 数据库介绍 第一天 前端使用的技术:AdminLTE 数据库准备工作 SSM整合 Spring环境搭建 SpringMVC环境搭建 增加产品添加功能 第二天 数据库填充数据及创建相应的实体类 订单查询 订单分页功能 功能实现 第三天 SSM权限操作 Spring Security概述 实现用户退出功能 实现用户查询功能 第四天 数据库准备 实现角色查询功能 实现资源权限管理 实现资源权限添加功能 第五天 实现用户—角色关联 实现查询用户-角色 给用户添加角色 角色权限关联 展示权限 实现权限添加功能 方法权限控制 使用@Secured注解 配置403错误页面 页面端标签控制权限 使用页面端标签控制权限注解 AOP日志 数据库准备 代码实现 总结 功能介绍 商品查询 商品添加 订单查询 订单分页查询 订单详情查询 用户管理 角色管理 资源权限管理 权限关联与控制 AOP日志处理 数据库介绍 产品表 订单表 会员表 旅客表 用户表 角色表 资源权限表 日志表 第一天 前端使用的技术:AdminLTE 简介

SpringBoot2.0整合SpringSecurity,Mybatis,Layui框架从零开始实现登入登陆的增删查改

╄→尐↘猪︶ㄣ 提交于 2020-08-13 13:24:48
一、工具说明 开发工具:idea2019 jdk版本:1.8 数据库: Mysql5.0+ 二、项目说明 基于springboot2.0,整合druid, jpa , thymeleaf,layui,mybatis,maven,springsecurity框架实现登入登出的管理系统。 三、项目搭建 1、快速搭建maven项目 (1)点击左侧Maven,选择Jdk1.8,选中 Create from archetype,点击next。 (2)填写项目信息,点击next (3)选择项目位置,点击finish。 (4)项目结构图如下: 2、引入相关依赖 <!-- springboot 2.0.9 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.9.RELEASE</version> </parent> <dependencies> <!--springboot -web 组件,整合 springmvc,spring --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot

springSecurity+oauth2实现权限认证系统(资源服务器与授权服务器分离,client信息入库,token存入redis持久化)

百般思念 提交于 2020-08-13 13:01:21
文章目录 一、前言 二、oAuth2授权码模式认证流程 三、权限认证系统的三个角色 四、demo实现的功能 五、技术点 1.SpringSecurity自定义登录页面,账密信息入库 配置自定义登录页面 账密信息入库 2.集成通用Mapper 六、认证服务器 1.配置client信息入库存储 2.配置access_token等令牌信息持久化到redis中 3.授权服务器提供的一些访问接口 七、资源服务器 1.受保护资源有关配置 2.资源服务器与授权服务器分离配置 八、客户端 1.访问授权服务器获取令牌 2.使用access_token来访问资源服务器 3.实现客户端访问指定接口完成资源服务器登录 九、完整流程演示 1.客户端登录: 2.跳转授权认证页面 3.完成授权认证 4.访问受保护资源 5.客户端访问指定接口完成资源服务器登录 十、项目地址 一、前言 本文章侧重实战,是为线上系统做的一个demo。适合对oauth2有一定理解后再阅读。 如果对oauth2理解还不够深入,建议先阅读 芋道 Spring Security Oauth2入门 来夯实一下基础。 这个demo主要实现了资源服务器与授权服务器分离,client信息入库,token信息在redis中持久化,demo的github地址会在文末贴出。 二、oAuth2授权码模式认证流程 首先来看授权码认证模式的一个流程图: