Spring Security

ElasticSearch 23 种映射参数详解

故事扮演 提交于 2020-12-03 11:50:08
松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里--> Spring Boot+Vue+微人事视频教程 hello 各位小伙伴,Es 继续更新。从今天开始我们来看 Es 中常见的 23 种映射参数,由于这里涉及到的东西比较多,因此松哥也录制了多个视频来讲解,每次两集,估计可以分三次讲完,今天我们先来学习 analyzer、search_analyzer 以及 normalizer 三种映射参数。 本文是ElasticSearch 系列第十四篇,和大家聊一聊索引的基本操作,前十三篇传送门: 打算出一个 ElasticSearch 教程,谁赞成,谁反对? ElasticSearch 从安装开始 ElasticSearch 第三弹,核心概念介绍 ElasticSearch 中的中文分词器该怎么玩? ElasticSearch 索引基本操作 ElasticSearch 文档的添加、获取以及更新 ElasticSearch 文档的删除和批量操作 ElasticSearch 文档路由,你的数据到底存在哪一个分片上? ElasticSearch 并发的处理方式:锁和版本控制 ElasticSearch 中的倒排索引到底是什么? ElasticSearch 动态映射与静态映射 ElasticSearch 四种字段类型详解 ElasticSearch 中的地理类型和特殊类型

设计模式在 Spring 框架中的良好应用

老子叫甜甜 提交于 2020-12-02 10:12:36
在开始正文之前,请你先思考几个问题: 你项目中有使用哪些 GOF 设计模式 说一说 GOF 23 种设计模式的设计理念 说说 Spring 框架中如何实现设计模式 假设我是面试官问起了你这些面试题,你该如何回答呢,请先思考一分钟。 好的,我们开始进入正题。设计模式实践里面提供了许多经久不衰的解决方案和最佳方案。这里,GOF 设计模式主要分为三大类:创建模式、结构模式和行为模式。创建模式对于创建对象实例非常有用。结构模式通过处理类或对象的组合来作用于企业级应用的设计结构,从而降低了应用的复杂性,提高了应用的可重用性和性能。行为模式的意图是一组对象之间的交互作用,以执行单个对象无法自己执行的任务。它描述了类或对象交互以及职责的分配。 那么,本文的核心话题是 Spring 如何通过使用大量设计模式和良好实践来构建应用程序。 工厂方法模式 Spring 框架使用工厂模式来实现 Spring 容器的 BeanFactory 和 ApplicationContext 接口。Spring 容器基于工厂模式为 Spring 应用程序创建 bean,并管理着每一个 bean 的生命周期。BeanFactory 和 ApplicationContext 是工厂接口,并且在 Spring 中存在有很多实现类。getBean() 方法是相对应的 bean 的工厂方法。 抽象工厂模式 在 Spring

用 Swagger 测试接口,怎么在请求头中携带 Token?

雨燕双飞 提交于 2020-11-25 07:57:40
松哥周末抽空给 Spring Security 系列也录制了一套视频,目录如下: 感兴趣的小伙伴戳这里--> Spring Boot+Vue+微人事视频教程 今天的话题来自一个小伙伴在微信上的提问: 看到这个问题,松哥忽然想到我自己之前写过 Spring Boot+Swagger 的用法: SpringBoot 整合 Swagger2 也写过 OAuth2 + Jwt 的用法: 想让 OAuth2 和 JWT 在一起愉快玩耍?请看松哥的表演 但是还没有将这两个结合在一起写过,所以小伙伴们对此有了疑问,想一想这还是一个非常常见的问题,因为现在使用令牌登录的场景越来越多,在这种情况下,如果使用 Swagger 来测试接口,要怎么在请求头中携带 Token 呢?今天松哥就来和大家聊一聊。 1.项目规划 如果小伙伴们没有看过松哥之前发的 OAuth2 系列文章,建议一定先看下(公众号江南一点雨后台回复 OAuth2 获取),再来看本文内容,否则接下来的内容可能会犯迷糊。 这里松哥搭建一个 OAuth2+JWT 的环境来做演示。一共搭建两个服务: 服务名 端口 备注 auth-server 8080 授权服务器 user-server 8081 资源服务器 我稍微解释一下: auth-server 就是我的资源服务器,用来颁发 JWT 令牌。 user-server 则是资源服务器,访问

boke练习: springboot整合springSecurity出现的问题,post,delete,put无法使用

眉间皱痕 提交于 2020-11-24 03:03:18
springboot 与 SpringSecurity整合后,为了防御csrf攻击,只有GET|OPTIONS|HEAD|TRACE|CONNECTION可以通过。 其他方法请求时,需要有token 解决方法: 1,支持post的方法: 1,如果使用freemarker模板 在form里添加<input type="hidden" name="${_csrf.parameterName}" value="_csrf.token"> 2,使用ajax时 $.ajax({ url:"/manager", type:"POST", data:{ "${_csrf.parameterName}":"${_csrf.token}", //其他的数据 } }) 2,支持delete,put的方法: 在支持post的基础上, $.ajax({ url:"/manager", type:"POST", data:{ "${_csrf.parameterName}":"${_csrf.token}", _method:"DELETE", /添加了这个,在后端就可以使用delete方法接收请求了,实现restful //其他的数据 } }) 二、当开启CSRF后,原来以Get方式,调用/logout,退出登录状态的功能失效了,跳转后报404错误。 1、查看源码,发现框架方法里做了备注

新里程牌!阿里内部自爆SpringSecurity笔记,惊呆

隐身守侯 提交于 2020-11-15 11:12:36
现在“打工人、打工魂、打工都是人上人......”,好像被洗脑了一样,我们都一样都是搬砖人,那么,搬砖是否就不值得一提呢?搬砖是不是就不会.......哈哈停止你的想法,该学习还是要学习,该跳槽还是要跳槽,公司在不断地更新,那么, 作为一名程序员,是不是更要更新和升级自己的技术栈,只有系统地学习新的知识,才不会被淘汰,那么你对SpringSecurity了解多少呢? SpringSecurity是一个强大且高度可定制的安全框架,致力于为Java应用提供身份认证和授权。 Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了 Spring IoC(Inversion of Control 控制反转),DI(Dependency Injection 依赖注入)和 AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。 下文内容主要是写这份《SpringSecurity成长笔记》的主要提纲内容,提纲内容包括学习目录+实战文档+面试礼包,需要下载完成版的朋友,可以文末扫码即可~ SpringSecurity成长笔记一 学习目录展示 源码分析 记住我功能原理分析 授权准备工作 动态展示菜单

java快速开发平台

╄→尐↘猪︶ㄣ 提交于 2020-11-14 06:48:28
   前言:    按目前IT行业发展,企业系项目,行业系项目,已经慢慢走向开源交付为主,根据小编这边数据调查,很多中小企业没有过多资深的技术人员,导致很多项目没有办法去    承包,当然包括想要开展其它不是专区的大企业,那么出现这种状态是因为IT发展太快了?人员设备跟不上?答案很明显。只是其中一个因素,例如:公司多了,技术分    散了,没办法去快速去支撑一个项目,尤其是系统的基层研发,或者是,跨领域扩展业务的开展,前期的项目切入,以及系统的兼容项目需求,没法使用原系统去兼容,    等等。种种因素,会导致企业失去一个机会,按实话说,就是能接下的,但是没办法去交付,这个就等于企业失去收益,如果按企业扩展业务角度来说,更会影响企业的    发展。    想要跟上社会的脚本,小编认为,必须寻找能支撑底层去做二次开发的工具,这样能快速去交付,考虑好工具的兼容性,以及是否能满足项目大部分的项目需求,现在    这种就是企业最新的一个动态方向,不会流失能握住的客户,不会失去一个机会。    我们怎么去选择快速开发平台呢?那么小编也不脸红的,推荐一下,自家的Java快速开发平台,当然只是一个分享,IT人员可以大家到网络上去考究,研究,分析,    选取,浏览,对比,等等,那么快速开发平台要求有那些呢?    可以通过自家的平台,大家进行对比一下。我们平台工具目标是:快速交付项目

SpringSecurity+JWT如何做权限认证并且获取用户信息

那年仲夏 提交于 2020-11-12 18:46:13
SpringSecurity核心配置 /** * 对SpringSecurity的配置的扩展,支持自定义白名单资源路径和查询用户逻辑 */ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired(required = false) private DynamicSecurityService dynamicSecurityService; @Override protected void configure(HttpSecurity httpSecurity) throws Exception { ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = httpSecurity .authorizeRequests(); //不需要保护的资源路径允许访问 for (String url : ignoreUrlsConfig().getUrls()) { registry.antMatchers(url).permitAll(); } //允许跨域请求的OPTIONS请求 registry.antMatchers(HttpMethod.OPTIONS)

Spring Security + JWT实现前后端分离权限认证

若如初见. 提交于 2020-11-11 04:41:30
现在国内前后端很多公司都在使用前后端分离的开发方式,虽然也有很多人并不赞同前后端分离,比如以下这篇博客就很有意思: https://www.aliyun.com/jiaocheng/650661.html 我们从技术角度来看的话: http://blog.jobbole.com/111624/ http://www.360doc.com/content/18/0511/06/36490684_752894279.shtml 摘要: 为什么选择前后端分离 在以前传统的网站开发中,前端一般扮演的只是切图的工作,只是简单地将UI设计师提供的原型图实现成静态的HTML页面,而具体的页面交互逻辑,比如与后台的数据交互工作等,可能都是由后台的开发人员来实现的,或者是前端是紧紧的耦合后台。比如,以前淘宝的Web基本上都是基于MVC框架webx,架构决定了前端只能依赖后端。所以他们的开发模式依然是,前端写好静态demo,后端翻译成VM模版,这种模式的问题就不说了,被吐槽了很久。 而且更有可能后台人员直接兼顾前端的工作,一边实现API接口,一边开发页面,两者互相切换着做,而且根据不同的url动态拼接页面,这也导致后台的开发压力大大增加。前后端工作分配不均。不仅仅开发效率慢,而且代码难以维护。而前后端分离的话,则可以很好的解决前后端分工不均的问题,将更多的交互逻辑分配给前端来处理

Spring Security 实战干货:客户端OAuth2授权请求的入口

夙愿已清 提交于 2020-11-11 00:44:51
1. 前言 在 Spring Security 实战干货:OAuth2第三方授权初体验 一文中我先对OAuth2.0涉及的一些常用概念进行介绍,然后直接通过一个DEMO来让大家切身感受了OAuth2.0第三方授权功能。今天我们来一步一步分析这其中的机制。 2. 抓住源头 http://localhost:8082/oauth2/authorization/gitee 上面这个请求URL是我们在 上一篇 文章中提到的客户端进行第三方认证操作的起点,默认格式为 {baseUrl}/oauth2/authorization/{clientRegistrationId} ,其中 clientRegistrationId 代表着一个第三方标识,可以是微信、支付宝等开放平台,这里为 gitee 。用户点击了这个请求后就开始了授权之旅。假如大家都是从零开始的小白,肯定是要从这个入口来一步一步探寻其中的机制的。Spring Security一定是拦截到了 /oauth2/authorization 后才启用了OAuth2相关的处理逻辑。那就去抓住这个源头!从源码中搜索嘛!IDEA 快捷键 CTRL SHIFT R 就可以全局搜索结果了。 不出所料找到了三个地方,记下来一个一个看! OAuth2AuthorizationRequestRedirectWebFilter 先来看第一个

Spring Security如何优雅的增加OAuth2协议授权模式

99封情书 提交于 2020-11-03 07:50:52
一、什么是OAuth2协议? OAuth 2.0 是一个关于授权的开放的网络协议,是目前最流行的授权机制。 数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。 由于授权的场景众多,OAuth 2.0 协议定义了获取令牌的四种授权方式,分别是: 「授权码模式」 :授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与"服务提供商"的认证服务器进行互动。 「简化模式」 :简化模式(implicit grant type)不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了"授权码"这个步骤,因此得名。所有步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。 「密码模式」 :密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码。客户端使用这些信息,向"服务商提供商"索要授权。 「客户端模式」 :客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提供商"进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直接向客户端注册