自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tof

more see,more think,more practice,more summary

  • 博客(499)
  • 资源 (2)
  • 收藏
  • 关注

转载 第8章分析之分析类图—知识篇Part11-类之间的关系

建模一张类图,需要很多个思考周期。如果这样的类图描述的是不同领域的类之间的协作,那还可以接受,如果类图上都是核心域的概念,那就要警惕了,可能建模人员根本没有去寻找泛化和关联关系。应该在某个用例的某张序列图(或通信图)上描述,在什么场景,进行到哪个步骤时,A需要调用B的什么操作,在什么场景,进行到哪个步骤时,A需要调用C的什么操作,如图8-95。我们阅读用例规约或其他素材,一边思考一边建模,不管识别出类、属性还是关系,画上去就是,并不需要假装看不见类的关系,非得先把类和属性都识别完了,再来识别类之间的关系。

2024-02-22 19:30:00 32

原创 Spring boot maven打包时复制依赖打包到可执行jar的指定目录

【代码】Spring boot maven打包时复制依赖打包到可执行jar的指定目录。

2023-11-03 10:22:55 315

原创 Spring Security认证成功后自定义额外校验功能

当用户认证时,认证成功后,需要对用户进行额外的检查,比如官方提供的用户名密码认证Provider,是DaoAuthenticationProvider,此类继承了AbstractUserDetailsAuthenticationProvider,此类中就有设置postCheck和preCheck,默认检查用户是否有效,是否过期等。增加收集自定义UserDetailsCheckRegister。二.自定义增加校验功能。

2023-09-19 21:30:00 252

原创 maven 代码质量 安全检查相关插件

java maven 代码质量 依赖jar安全问题 覆盖率 模块复杂度

2023-04-21 20:30:00 365 1

原创 java 代码混淆

java 混淆 proguard

2023-04-14 20:45:00 472

原创 java maven校验jar冲突+类冲突+存在危险的jar+jdk版本等

java maven 类冲突 jar冲突 循环依赖 不安全jar依赖检测

2023-04-13 21:30:00 303

原创 Swing相关示例学习网站

Swing

2023-02-21 08:31:23 79

原创 Spring Security AuthorizationFilter代替FilterSecurityInterceptor重大变更逻辑

spring security AuthorizationFilter FilterSecurityInterceptor

2023-02-09 18:45:00 914

原创 java 对文件下载进行加密

java Cipher 文件下载加密

2022-12-29 16:26:42 655

原创 oauth2 spring-authorization-server OAuth2AuthorizationService支持redis

oauth2 spring-authorization-server OAuth2AuthorizationService redis

2022-10-21 20:30:00 1878 5

原创 SpringBoot2.6 升级到springBoot2.7 H2,JPA,Security问题

升级SpringBoot2.7 H2,JPA,Security等问题

2022-09-30 14:33:09 1256

原创 Spring Authorization Server 最新中文文档

Spring Authorization Server 中文文档

2022-06-13 20:30:00 2578 1

原创 Spring Authorization Server版本升级总结 + 功能点扩展

Spring Authorization Server版本升级总结 + 功能点扩展

2022-06-10 21:00:00 2455

原创 升级SpringBoot 2.6 Swagger documentationPluginsBootstrapper null

spring boot 2.6 swagger

2022-05-27 08:38:04 728 1

原创 spring-authorization-server 授权码许可类型授权页面自定义JSON响应,应用前后端分离场景

spring-authorization-server 授权码许可类型授权页面自定义JSON响应,应用前后端分离场景

2022-05-18 08:29:33 2037 5

原创 TDD项目实战70练

洞见测试驱动开发的实质与全貌 40+ 小时视频,演绎架构设计新思路 3 个开发框架,搞定 TDD 的落地难题 靠谱程序员必备的任务分解基本功提起 TDD,肯定会掀起一番互为对立的讨论。会 TDD 的人连声称赞叫好,认为 TDD 显著提高了编码效率,让自己工作起来更有安全感。而没实践过 TDD 的人,还在困惑这是不是天方夜谭,因为没法想象为什么需要这样的方式来开发:为什么要开发人员来写测试?难道开发人员写了测试,测试人员就不用再测了嘛? 又要写测试,又要写生产代码,效率是不是太低了? ..

2022-05-12 08:52:42 1335

原创 如何落地业务建模

洞悉建模设计的本质和目的 全套业务建模思维指导性训练 微服务、中台建模方法及最佳实践 构造 SaaS 化服务的全新方法论说起业务建模,我们很多人可能不知道这个东西到底有什么用,毕竟面试也很少会被问到,对平时写代码也没有什么直接的帮助。确实,业务建模是一项软技能,不会像其他的硬性技术那样让你直呼很爽。但是,具备良好的业务建模能力,会在认知层面影响你对业务、代码等方面的理解。因为业务建模首先是一个定义问题的方法,其次才是解决问题的方法。而我们通过定义问题,甚至可以把解决方案的复杂度直接降..

2022-05-12 08:50:04 1721

原创 分析定位Java问题的工具

1.使用 JDK 自带工具查看 JVM 情况JDK 自带了很多命令行甚至是图形界面工具,帮助我们查看 JVM 的一些信息。比如,在我的机器上运行 ls 命令,可以看到 JDK 8 提供了非常多的工具或程序<1>jps首先,使用 jps 得到 Java 进程列表,这会比使用 ps 来的方便:➜ ~ jps22261 Launcher<2>jinfo可以使用 jinfo 打印 JVM 的各种参数➜ ~ jinfo 22261Java System P...

2022-05-12 08:46:03 135

原创 Spring Security的全面简介

Spring Security,这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,主要围绕认证和授权,提供一系列完整的可配置可定制可复用的强大安全保护功能。对比OWASP的一些开源安全产品,Spring Security内容繁多复杂。本文将按照个人的理解,从简介绍Spring Security,过程中将搭配有示例、以及安全方面的资料。如需了解Spring Security具体细节,请自行查阅官方文档(链接:英文原文,机翻中文)。背景Spring Security主要.

2022-05-12 08:40:13 513

原创 SpringBoot Spring Cloud Spring Cloud Alibaba版本指南

SpringBoot Spring Cloud Spring Cloud Alibaba

2022-05-12 08:28:32 795

原创 oauth2 spring-authorization-server资源拥有者模式支持手机短信,邮箱认证

1.版本spring-security-oauth2-authorization-server 0.2.3spring-boot 2.6.62.概述目前实现的资源拥有者模式实现只支持用户名密码认证,项目有需求需要支持根据手机号,邮箱进行认证,需要改造资源拥有者模式的实现,可以让开发自定义任何和资源拥有者相关的认证方式3.实现...

2022-04-19 17:27:25 1835

原创 oauth2 spring-authorization-server 自定义权限

1.版本spring-security-oauth2-authorization-server 0.2.3spring-boot 2.6.62.概述资源服务请求授权服务校验token的响应时,会将scope转换资源服务认证对象中的权限参见NimbusOpaqueTokenIntrospector类。目前需要支持授权服务响应权限信息,资源服务这边转换授权服务响应的权限信息在授权服务器0.2.0到0.2.1的版本中,不能很好的支持扩展响应的token,内部固定写死响应固定...

2022-04-19 17:16:11 3019

原创 oauth2 spring-authorization-server自定义资源拥有者凭据许可模式

1.版本spring-authorization-server 0.2.3spring-boot 2.6.62.概述spring-authorization-server中实现的oauth2标准中已经不支持自定义资源拥有者模式,但是项目从之前spring-seucirty-oauth2内置的升级到最新的授权服务器或者需要资源拥有者模式,就不要扩展3.分析官方源码的测试代码中给的示例初始化spring security的安全配置基本如下protected void config

2022-04-19 16:41:57 1702 1

原创 Spring Security HttpSecurity正确的客户化姿势 + 同时支持session,cas,oauth2登录功能

HttpSecurity采用CustomDSL的设计和使用1.概述本项目框架的安全控制使用的spring security,针对spring security做了很多的扩展,项目中的配置主要是使用模块中的HttpSecurityConfigurer类,此类中配置没有集中化,配置过于分散,如果是客户化spring security的配置,官方的建议是使用CustomDSL或者使用官方提供的Configurer的Customizer方法。2.CustomDSL2.1.官方示例官方地址:Spr

2022-04-19 14:48:19 682

原创 oauth2 spring-authorization-server 分析

spring boot,spring security,oauth2,spring-authorization-server

2022-01-19 16:38:12 11736 6

原创 领域驱动设计实战学习

随着分布式技术的快速兴起,我们已经进入到了微服务架构时代。微服务架构的出现,很好地实现了应用之间的解耦,解决了单体应用扩展性和弹性伸缩能力不足的问题。随着业务的复杂度升级,其好处自然不言而喻。那微服务到底怎么拆分和设计才算合理,拆多小才叫微服务?这个尖锐的问题,在业内一直被热议。紧接着,继阿里巴巴成功转型中台战略之后,微服务设计和拆分再至风口浪尖,对于众多公司来说,都是一个不小的挑战。那有没有好的方法来指导微服务和中台的设计呢?当然有,你也可能耳闻过,那就是领域驱动设计(DDD)。你可能会疑惑,

2021-06-28 09:55:19 159 1

原创 代码之丑 代码整洁之道

我们知道,写代码要具有正确性和可维护性,能把代码写对,是每个程序员的必备技能,但能够把代码写得具有可维护性,这才是一个程序员从业余迈向职业的第一步。那具体要怎样编写可维护的代码呢?我建议你从“代码的坏味道”入手,为什么?我们以往学到的知识,大多都会告诉我们应该怎样做、怎样做是好的,但应用这些内容,需要我们对整洁代码有着深厚的理解,而每个人对同一件事的领悟程度是不同的。比如说,我们都知道“命名是要有意义的”,但什么样的命名才算是有意义的呢?有的人只理解到不用 xyz 命名,虽然他起出了自认为“有意义”

2021-06-28 09:41:51 307

原创 软件设计之美

在开发软件的过程中,我们都遇到过这样的情况:一直在增删改查,缺少大局观,闷头写代码,埋下了很多自己也不知道的坑; 系统出现问题时,只能头疼医头,脚疼医脚,找不到引发问题的本质原因; 为了一个小需求,要在无数的地方小心翼翼地做着各种微调,还被产品经理嫌弃改得慢; 每次针对需求变更而开发的代码,都会导致无尽的 Bug,连那些本来还好的代码模块也逐渐腐坏变烂; 把各种代码堆砌在一起,在出现 Bug 时,犹如“大家来找茬”一样在其中定位问题,脑壳痛。其实,出现这些问题,绝大多数都是因为一个原因——软件

2021-06-28 09:38:58 409

原创 10倍程序员工作法

一个好程序员的工作效率是普通程序员的10倍,成为10x程序员应该是每个开发者的追求。但效率是由编程能力决定的吗?答案是“未必”。工作中,你可能有过这样的困惑:作为程序员,你很想潜心钻研技术,却发现每天耗费大量精力解决的问题,多数都不是纯粹的技术问题,总会有一些令你抓狂的意外。你写完代码,但需求变了;你做出的东西,总是和要求不符,经常返工;你错估了工作量,因而要拼命加班弥补……诸如此类,不胜枚举。于是,你的工作很被动,经常加班、熬夜、忙忙碌碌,却总在解决这类看似很“不值当”的事儿。归根结底,程序员

2021-06-28 09:24:06 284

转载 git修改commit注释(历史日志)

一、修改最近的一个注释整个完整的提交流程:1、编辑提交的内容输入git commit -mend命令,进入以下命令,输入i,进入编辑模式:输入:wq保存退出。2、重新pushpush -u =f origin master二、修改任意多个注释1、先标志处要要修改日志位置git rebase -i head~4(其中4可以是任意值)输入i,进入编辑模式:将需要修改的注释改为edit:wq保存退出2、进行单条修改(其中上面选择了2条...

2021-05-18 20:04:12 993

原创 ELK和Kerberos认证

ELK和Kerberos认证1.简介ES从6.4.0开始支持Kerberos认证,此功能不开源,需要会员。但是下载安装功能,可以开启免费试用30天。注:Elasticsearch简称ES2.版本名称 服务器 版本 IP KDC服务端 centos7 1.15.1-50.el7 192.168.174.132 Kerberos客户端 centos7 1.15.1-50.el7 192.168.174.133 Kerberos

2021-01-12 11:48:06 897

原创 Kerberos安装配置 + SPNEGO + windows安装

Kerberos1.简介Kerberos简单来说就是一个用于安全认证第三方协议,它采用了传统的共享密钥的方式,实现了在网络环境不一定保证安全的环境下,client和server之间的通信,适用于client/server模型,由MIT开发和实现。  Kerberos的神秘之处在于,它并不要求通信双方所在的网络环境是安全的,即使通信过程中数据被截取或者篡改依然不会影响它的正常工作,它提供的认证是双向的,不仅能保证Server不被错误的Client使用,同时也能保证Client不使用错误的Serve

2021-01-12 11:32:53 1566

原创 idea 使用gradle构建项目build sync fail:Starting Gradle Daemon

使用gradle构建项目build sync fail,只是输出:Starting Gradle Daemon...就没了,这是由于本机安装了多个jdk版本导致gradle的javaHome变量不一致。由于idea窗口并没有输出详细日志,只是输出了:Starting Gradle Daemon...就没了,我们可以如下图操作:打开可以找到idea.log。打开改文件可查看详细的信息。具体的idea log报错信息如下:2020-06-11 19:00:21,250 [ 33121] ..

2020-12-05 22:00:34 2819 4

原创 DDD全面解析与实践学习摘要

第一章 领域驱动设计基础1.从事务内外两个视角分析事务的方式是一套基本的逻辑分析和设计方法。2.适度是在过度和不足中探索平衡的结果。代码适度的一个衡量标准是单一职责原则3.面向对象还有另外一个原则DRY4.将一些函数合并在一起的原因常常是,这些函数虽然位于在不同的类中,但是功能看起来是相同的,但是随着时间的推移,当你的注意力从函数功能本身转移到它所在的上下文时,有发现它们还是有些不同的。只有当复杂性变得难以管理或业务模型有明确要求时,才应该对抽象进行重构,提前执行此类操作只会损害代码并引入大

2020-12-05 15:51:30 328

原创 Jenkins Pipeline 使用sh运行脚本部署发布java服务

1.sh脚本stop-app.sh 查找启动的项目名称杀死项目ps -ef|grep "my-app"|grep -v grep |awk '{print $2}'|xargs killstart-app.sh后台启动服务,并将日志写入到my-app.log文件重nohup java -jar -Xms512m -Xmx512m my-app-1.0.0.jar --spring.profiles.active=prod --eureka.client.serviceU...

2020-12-03 17:22:33 3337

原创 TDD学习小结

1.编程是一门手艺活,这个世界上的手艺都是练会的,说别的都是骗人的。2.大量的重复练习之后,才开始为他提供反馈和指导。3.你这个程序打算怎样给人用了?4.拿到一个需求确认自己听到的需求,是不是真实,完整的需求考虑自己的代码,将来如何被使用5.TDD,测试驱动开发,测试驱动设计,可测试性驱动设计6.拿到任何需求,我们都应该思考,这种事,我可以把他拆分成几个任务?拆出各自独立的几个任务来,我们才好各个击破。7.测试就像许愿,愿意一定要小。8.编程原则没有失败的测试就不要修

2020-11-15 13:33:48 189

转载 该怎样设计API?

API定义哲学:要站在用户的角度定义接口,哪怕背后对应技术实现方式难度更大。我们应该把这些dirty laundry隐藏在API背后。而不是选择一条自己更容易实现的技术方式,却把dirty laundry都抛给了你的用户再次强调API定义哲学:当我们给用户提供API时,不应该由技术实现的难易程度来决定,而是站在用户的角度,消除掉一切不必要的复杂度,让用户可以最快速,最直接的达到他的目的至于实现时的细节和复杂度,都应该统统被隐藏在API的背后。首先站在客户的角度思考,怎样才是客户真正的需要。此时完

2020-09-09 17:23:39 103

原创 Spring security开启remember me功能,配置session超时,导致csrf验证失败

概述当开启remember me功能,且配置session超时,当session超时后,会清空session,刷新页面可以正常实现记住我的功能,但是存放到session中的csrf token已被清空,会提示csrf校验异常,跳转到登录页面,导致remember me功能无法实现。配置remember me + session超时后端public class HttpSecurityConfigurer { @Override public void configure(H

2020-06-25 18:28:03 1526

原创 Spring Security登录用户名和密码加密

```javaimport java.io.IOException;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.htt

2020-06-25 18:17:30 1499

转载 推行TDD的思考

推行TDD的思考目前来看,推行TDD的障碍大约有如下几点:1. 开发人员的质量意识;2. 分析需求并进行任务分解的能力;3. 将测试作为开发起点的开发习惯;4. 开发人员的重构能力,包括如何识别坏味道和如何运用重构手法;5. 单元测试的基础设施,尤其是测试数据准备;开发人员的质量意识开发人员对于软件质量,常常偏重于软件的外部质量,体现在他们的工作效益上,就是被测试人员发...

2019-06-15 10:27:05 322

idea快捷键操作文档

idea快捷键操作文档

2023-02-14

重构到模式

重构与模式,如何使用重构模式,是坏代码变得可维护。

2018-09-08

postgres数据库odbc数据源

postgres数据库odbc数据源 用于odbc连接postgres数据库

2011-09-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除