码农小胖哥

其他

Spring Boot 2.7.0发布,2.5停止维护,节奏太快了吧

GraphQL,对应的starter是spring-boot-starter-graphql。GraphQL是一种用于API的查询语言,同时也是一个可以满足数据查询的语言。不透明令牌自省优化如果您在
2022年5月19日
其他

放弃密码模式吧,最先进的Spring Cloud认证授权方案在这里

Server的开源的授权服务器,它大大降低OAuth2授权服务器的学习使用难度,提供UI控制台,动态权限控制,方便OAuth2客户端管理,可一键生成Spring
2022年5月15日
其他

Spring Cloud Gateway整合OAuth2思路分享

微服务做用户认证和授权一直都是一个难点,随着OAuth2.0的密码模式被作废,更是难上加难了。今天胖哥群里的一个群友搭建用户认证授权体系的时候遇到了一些棘手的问题,这让胖哥觉得是时候分享一些思路出来了。两种思路通常微服务的认证和授权思路有两种:所有的认证授权都由一个独立的用户认证授权服务器负责,它只负责发放Token,然后网关只负责转发请求到各个微服务模块,由微服务各个模块自行对Token进行校验处理。另一种是网关不但承担了流量转发作用,还承担认证授权流程,当前请求的认证信息由网关中继给下游服务器。第一种非常简单,而且我在多个微服务项目中都是这样设计的。如果你从来没有设计过,我其实建议按这个思路去做,你只需要搞一个负责管理用户、角色权限的服务器,其它的微服务模块都作为资源服务器自行和这个用户授权服务器进行交互,加上三户模型体系就足以应对各种场景了。第二种结合了OAuth2体系,网关不仅仅承担流量转发功能,认证授权也是在网关层处理的,令牌会中继给下游服务。这种模式下需要搭建一个UAA(User
2022年4月11日
其他

Java 8 + 10 = Java 18

(SPI),以便`java.net.InetAddress`[2]可以使用平台内置解析器以外的解析器。这个对于互联网一些协议的接入提供了入口,同时你也可以对现有方案进行一些改进和定制。JEP
2022年3月22日
其他

OAuth2.0密码模式废了,停止使用吧

https://datatracker.ietf.org/doc/html/draft-ietf-oauth-security-topics-13#section-3.4[2]最佳实践:
2022年3月15日
其他

Spring Authorization Server 0.2.2版本发布

和text数据类型。Token撤销逻辑现在可以自定义了。userinfo_endpoint端点现在被加入授权服务器元数据信息中了。支持从当前请求中解析
2022年1月27日
其他

欢迎加入胖哥技术内卷群

此群只用来学习提高编程技术,科普答疑,进群需验证,非技术人员请勿进入,请扫码加入社群:
2022年1月26日
其他

内有红包封面| 这个命令行HTTP工具好用而且漂亮

cURL相信很多做开发的、运维的都不陌生,是非常有用的一个终端请求工具,借助于它可以在命令行中进行HTTP、FTP等请求,在Linux系统中应用非常广泛。但是它目前有一个缺陷,语法复杂,上手难度挺高,甚至目前还不直接支持JSON参数请求。胖哥最近发现了另一个类似的工具httpie,非常简单的一个HTTP命令行客户端,甚至有点酷炫。httpiehttpie是用Python写的,支持的操作系统非常全面,上手非常快,胖哥看了5分钟就能上手使用了。根据官方描述它的主要特点有:语法简单支持格式化输出和彩色样式Windows、Linux、MacOS都支持同时支持HTTP和HTTPS支持文件上传支持持续会话保持内置JSON支持,支持类似Wget下载支持插件VS
2022年1月26日
其他

20000个程序员红包封面胖哥已经设计好了

腾讯给了20000个红包封面名额,胖哥已经做完设计并提交审核了。平台审核通过后将通过公众号文章内置的方式发放给粉丝们。定额投放至2022年2月1日。先到先得,投完即止!所以你要多留意每天发布的文章,最好设置为星标哦!还希望多多点赞、转发、再看,视频号的小红心也不要吝啬哦!先来一睹为快
2022年1月25日
其他

欢迎加入胖哥技术内卷群

此群只用来学习提高编程技术,科普答疑,进群需验证,非技术人员请勿进入,请扫码加入社群:
2022年1月25日
其他

抢红包封面真是一件美事啊

玩个梗,红包封面真的来喽!关注一下呗
2022年1月24日
其他

20000个程序员红包封面胖哥已经设计好了

腾讯给了20000个红包封面名额,胖哥已经做完设计并提交审核了。平台审核通过后将通过公众号文章内置的方式发放给粉丝们。定额投放至2022年2月1日。先到先得,投完即止!所以你要多留意每天发布的文章,最好设置为星标哦!还希望多多点赞、转发、再看,视频号的小红心也不要吝啬哦!先来一睹为快
2022年1月24日
其他

Java如何校验两个文件内容是相同的?

今天做文件上传功能,需求要求文件内容相同的不能重复上传。感觉这个需求挺简单的就交给了一位刚入行的新同学。等合并代码的时候发现这位同学居然用文件名称相同和文件大小相同作为两个文件相同的依据。这种条件判断靠谱吗?从概率上来说遇到两个文件名称和大小都一样的概率确实太小了。这种判断放在生产环境中也可以稳定的跑上一阵子,不过即使再低的可能性也是有可能的,如果能做到100%就好了。文件摘要校验我相信同学们都下载过一些好心人开发的小工具,有些小工具会附带一个校验器让你校验附带提供的checksum值,防止有人恶意篡改小工具,保证小工具可以放心使用。文件Hash校验如果两个文件的内容相同,那么它们的摘要应该是相同的。这个原理能不能帮助我们鉴定两个文件是否相同呢?Java实现文件摘要带着这个疑问,我写了一个文件摘要提取工具类:
2021年12月1日
其他

网易宣布:免费培养30名前端开发者,小白也有机会!

搭建百度搜索栏!体验网站设计乐趣!珍藏资料★0元免费学
2021年11月30日
其他

Jetbrains正在开发下一代编辑器,对标VS Code,本文可申请体验

Code是目前轻量级编辑器的一哥,支持多语言。Fleet作为竞品自然也要支持多语言。image-20211129172721957分布式架构厉害了!编辑器都用了分布式架构。Fleet
2021年11月29日
其他

Spring Security动态权限越来越容易了

Security动态权限如果你的接口权限非常稳定,我推荐你使用注解方式;反之,使用动态权限控制。动态权限控制更加灵活和贴近现实,但是开发成本也高。最常见的方式之前Spring
2021年11月22日
其他

Spring Boot 2.6正式发布,Spring Boot 2.4停止维护

Bean之间的循环引用,需要开启可设置spring.main.allow-circular-references为true。请求路径与
2021年11月19日
其他

JSON序列化和反序列化还有这种玩法

Mixin对于前端开发者可不陌生,Vue、React等知名前端框架都使用了Mixin。而对于后端开发,尤其是Java后端开发来说Mixin却是一个很陌生的概念。今天来我们通过Jackson让后端开发者也来认识一下Mixin。场景比如我们引用了一个Jar包,其中的某个类在某个场景需要反序列化,但是这个类没有提供默认构造。咋办呢?把原来的项目拉下来,重写一下?下下策!
2021年11月18日
其他

OAuth2.0中的scope和RBAC中的role有什么关系

使用了OAuth2.0授权协议之后我们在API的访问控制时又多了一个scope的概念。它和角色访问控制的作用类似,有点让人有点模糊不清。今天我们来理清楚这两个概念。scopescope是
2021年11月16日
其他

Spring OAuth2 授权服务器配置详解

JWK会涉及到加密算法,这里使用RSASHA256算法来作为加密算法,并通过Keytool工具来生成.jks公私钥证书文件。当然你也可以通过openssl来生成pkcs12格式的证书。在Spring
2021年11月15日
其他

授权服务器框架Spring Authorization Server的过滤器链

Server过滤器链SecurityFilterChain的。它负责授权服务器所有相关过滤器的配置和初始化。其中四个过滤器可以通过各自的Configurer来灵活的自定义,这里列举一下。
2021年11月11日
其他

作为程序员这些都是必读的书

代码实现采用了模块化的编程风格,读者可以方便地加以改造。本书配套网站提供了书中内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。
2021年11月9日
其他

Spring新的授权服务器Spring Authorization Server入门

127.0.0.1:8080被OAuth2AuthorizationRequestRedirectFilter拦截后组装成下面的请求链接向授权服务器oauth2-server发起授权码授权:
2021年11月9日
其他

Java类(接口)的新类型——密封类

{}那么难道密封类(接口)的子类只能是final类或者密封类,就不能再扩展了?答案是否定的,只需要使用关键字non-sealed显式声明密封类的继承实现为非密封类就可以继续扩展了。
2021年11月1日
其他

从Java 9 到 Java 17之Java 12

System.out.println("左边缩进仨字符,但是实际只有一个空格位");
2021年10月30日
其他

一个Spring的注解竟然能玩出这么多花样

答:在springboot的CharacterReader类中,默认的编码格式是ISO-8859-1,该类负责.properties文件中系统属性的读取。如果系统属性包含中文字符,就会出现乱码。
2021年10月26日
其他

从Java 9 到 Java 17之Java 11

strip()方法还有两个变种,stripLeading()用来去除前面的全角半角空白符;stripTrailing()用来去除尾部的全角半角空白符。
2021年9月29日
其他

从Java 9 到 Java 17之Java 10

10对容器集成也进行了优化,JVM会根据容器的配置进行选择CPU核心数量和内存占用。还有其它一些底层优化特性这里就不多说了,了解为主,当你达到一定的层次会自己去了解的。到此Java
2021年9月27日
其他

Spring Boot 正式支持Java 17,Kafka3.0弃用Java8

17进行了正式支持或者正在准备支持。Java生态正在潜移默化进入一个新的时代。Java知名ORM框架Hibernate宣布他们目前积极维护的分支都支持Java17。另外他们还吐露出了胖哥的心声:
2021年9月24日
其他

从Java 9 到 Java 17之Java 9

"java");❝但是请注意:这些API创建的集合都是不可变的(Immutable),你不能对这些集合进行增删改。
2021年9月22日
其他

快速无副作用搭建Java 17环境并玩转Record特性

Record被用来设计传输不可变的数据。从上面的例子可以看到,一个Record类被初始化后里面的属性是不能改变的,没有Setter方法而是通过全参数构造来初始化数据,天然线程安全。
2021年9月17日
其他

架构师必备技能:Maven Archetype生成项目模板

基本每个公司的项目都有一套模板,只要开新项目直接复制一份改改包名和一些配置就初始化了一个新项目。这种方式有点繁琐,有没有通过命令甚至是可视化的方式从一个模板项目初始化项目。Maven其实有提供这种能力,这就是基于原型(Archetype)的生成项目。集成项目模板插件首先需要在模板项目中集成Maven原型插件:
2021年8月28日
其他

如果你使用了这个Stream流操作,升级Java17有可能会出问题。

使用的角度来看,这不太正常。如果我调用一个方法,我肯定希望它能够执行,即使它可能抛出一个异常,但是在这里却什么也没发生。❝This
2021年8月26日
其他

这段代码我猜76.85%的Java程序员都看不懂

提供的一系列的语法糖和特性让Java又焕发了青春。虽然现在Java
2021年8月24日
其他

通过管理API管理OAuth2 认证授权服务器Keycloak

Enabled,这意味着admin-cli客户端能够访问用户的用户名和密码,并以此从Keycloak服务器获取访问令牌,继而能够进行进一步的访问授权操作。
2021年8月21日
其他

一个接口是如何在Keycloak和Spring Security之间执行的

Security没有存Session或者Cookie中也没有就会把/admin/foo缓存到Cookie中,然后重定向到Keycloak授权页:
2021年8月18日
其他

OAuth2.1授权服务器Spring Authorization Server正式孵化成功进入Spring项目家族

https://github.com/spring-projects/spring-authorization-server扩展阅读Spring
2021年8月17日
其他

Spring Security实战干货:集成微信公众号OAuth2.0授权

tokenResponseHttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON,
2021年8月14日
其他

Spring Boot 记录请求响应日志的常用手段

{"@timestamp":"2021-08-10T23:48:51.322+08:00","@version":"1","message":"statusCode
2021年8月10日
其他

Keycloak Spring Security适配器的常用配置

Service),开启了这一配置后Keycloak服务器会通过请求标头相对“智能”地引导未认证的用户到登录页面还是返回401状态。比bearer-only更加智能一些。
2021年8月6日
其他

Spring Security 中使用Keycloak作为认证授权服务器

Security的要点这里需要再梳理一下。在原生情况下,客户端的配置、用户的信息、角色信息都由Keycloak负责;客户端只负责角色和资源的映射关系。后续会深入并定制Keycloak和Spring
2021年8月3日
其他

OAuth2.0协议扩展——OIDC认证协议的基本概念

协议这个东西学起来确实比较枯燥难懂,需要结合一些场景才能说清楚,说实话有些东西我也云里雾里,不过这个是无法跳过去的东西。先不要想太多为什么,后续会结合一些场景来搞明白上面的术语和流程。
2021年8月2日
其他

上篇|Jackson注解的用法和场景,不看巨亏

Jackson注解一览今天总结一下Jackson的一系列注解的用法和场景,或许能帮助你实现一些功能,总结不易,还请多多关注、点赞、转发。@JacksonAnnotation这个注解经常用于Jackson自定义注解中,用来标记这是一个Jackson注解,这个胖哥在Jackson脱敏一文中用过它来实现自定义的序列化注解。@JacksonAnnotationsInside这个注解用来标记Jackson复合注解,当你使用多个Jackson注解组合成一个自定义注解时会用到它。
2021年7月15日
其他

OAuth 2.0只是授权协议,OIDC才是认证授权协议

的基础之上增加一个对资源所有者的认证流程,实现了真正意义上的认证授权。基于篇幅的原因,我会在后续系列文章中和大家共同学习OIDC协议。如果你有什么疑问可以留言讨论。
2021年7月12日
其他

Keycloak简单几步实现对Spring Boot应用的权限控制

我们在上一篇初步尝试了keycloak,手动建立了一个名为felord.cn的realm并在该realm下建了一个名为felord的用户。今天就来尝试一下对应的Spring
2021年7月9日
其他

开源认证授权管理平台Keycloak初体验

然后注销当前用户admin并到http://localhost:8011/auth/realms/felord.cn/account以刚创建的用户felord的身份登录到felord.cn域。
2021年7月7日
其他

这个安全平台结合Spring Security逆天了,我准备研究一下

中文资料也比较少,需要自己去啃官方的文档。对于业务需要的认证方式可能会需要自行实现一些接口,同样考验着个人的编码能力。
2021年7月6日
其他

这段Java代码连不少大佬都栽了跟头,何况我

最近用了Optional实现了一段逻辑,想不到居然翻车了。看了源码之后才恍然大悟,不过翻车的不是我一个人,很多人都说自己在这个地方翻过车,其中不乏一些大佬级的人物。
2021年7月5日