Google Auth 迁移到 Chrome 拓展程序
公司日常开发有很多时候需要用到两步验证,目前我的两步验证码是保存在手机上面的Google Authenticator。
每次登陆的时候都需要打开手机进行验证很麻烦。决定找一个能在电脑上面使用两步验证的app。
因为不想删掉之前的两步验证重新添加,所以还需要能迁移过去。
需求点
能够从Google Authenticator迁移到新寻找的App上面。
免费。
在App Store上面找到了几款应用介绍非常不错的,并且还能有TouchID来解锁的功能,兴致冲冲去下载之后发现要内购。
没错这几个都要钱
找了一圈Crack也没有找到,无奈之下找到了个Chrome的拓展程序,也可以进行迁移导入 。
先上链接
选择导入备份之后
在Google Authenticator点击转移账号,将生成的二维码截图或者拍照
我尝试使用QRCODE导入,但是识别不到。
最终使用了扫描二维码出来的内容,使用导入备份文本解决的。
JumpServer跳过登陆验证使用终端直接登陆
前言
公司在经历一段安全管控之后,JumpServer就连使用跳板到测试环境也需要两步验证了,但是每次这样都会很麻烦,本来使用三方的tabby进行连接就很优雅了,使用https://github.com/jumpserver/jumpserver/issues/10061两步验证之后都很繁琐。
发现MFA的配置无法跳过,下面的内容也只能起到跳过密码的操作
自动登陆也是可以实现的,不过我懒得去弄了,详情见延展阅读2
MFA 是二次认证。用户登录 JumpServer 时,密码是第一层,第二层是 MFA。通过 Terminal 登录时,也是一样的。使用密钥 SSH 登录,只是第一层认证通过了,所以会显示 MFA 等待输入。如果用户开启了 MFA,那无论是 Web 还是终端都需要认证。从安全角度来讲,没问题的。
今天在看JumpServer的个人资料设置的时候发现了个SSH Key设置
那么不就简单多了,直接通过SSH Key进行免密登陆
操作
到你的JumpServer上找到上图设置,在头像的个人资料设置那里就有
点击Reset and download SSH Key下载到一 ...
Liquibase使用
安装liquibase
我这里用的是Manjaro,直接使用yay进行安装
yay -S liquibase
安装MySQL的驱动
通过yay安装的liquibase会在/opt/liquibase/internal/lib,将下好的驱动放到这个目录下
创建一个liquibase的配置文件
# Mysql连接串driver: com.mysql.cj.jdbc.Driverclasspath: /opt/liquibase/internal/lib/mysql-connector-j-8.1.0.jarurl: jdbc:mysql://127.0.0.1:3306/liquisbase?useSSL=false&serverTimezone=UTC&autoReconnect=true&allowPublicKeyRetrieval=true&useOldAliasMetadataBehavior=trueusername: liquibasepassword: 123456changeLogFile: changeLog-mysql.x ...
HtmlUnit爬虫获取页面信息
HtmlUnit是一个没有GUI的模拟浏览器测试框架,之前在Python使用过Slenium进行自动化测试和一些爬虫的操作。但是Slenium在使用的时候会出现一个浏览器界面进行真实操作。
HtmlUnit可能在编排代码的时候不知道浏览器现在是什么情况,可能会有很难写下去的情况。
POM中引入HtmlUnit
<!-- https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit --><dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.70.0</version></dependency>
编写代码
package org.example;import com.gargoylesoftware.htmlunit.Browser ...
自生成IP证书实现局域网Https访问
当我们在本地进行测试和部署的时候,有些会涉及到Https的部署,或者客户系统需要Https内网的加密通话。但是Https证书一般都是颁发给域名的,我们本地应该怎么操作呢。
生成需要的对应IP的Https证书,keytool就是java自带的工具,可以进行证书的生成等操作。
keytool -genkeypair -alias myapp -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 3650 -dname "CN=example.com" -ext "SAN=IP:192.168.1.1"
转换证书,该证书安装在使用者的电脑上
keytool -exportcert -alias keystore -file keystore.crt -keystore keystore.jks
keystore.jks就可以放在自己的应用下,作为Https证书使用,keystore.crt安装在要访问应用的用户电脑上。
这样咱们在内网就可以使用Https加密的IP地址访 ...
Feign Resilience4j 与 Hystrix 的碰撞
背景
在升级Springboot版本的时候,之前使用的是ContextHolder
threadLocal=ContextHolder.getInstance().getContextHolder();Map<String, String> parMap=new HashMap<>();parMap.put("Key","Value");threadLocal.set(parMap);
获取一个map保存传递信息
原理是 使用Feign的拦截器
if(parMap!=null&&parMap.size()>0&&parMap.containsKey("Key")){ template.header("Key","Value");}else{ logger.info(Thread.currentThread().getName()+"为空。");}
Fei ...
TypeNotPresentExceptionProxy问题排查
java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
TypeNotPresentExceptionProxy 是 类型不存在异常代理
找到TypeNotPresentExceptionProxy类,在sun.reflect.annotation下
在TypeNotPresentExceptionProxy方法里打断点
debug项目,查看断点错误
配置文件优先级
bootstrap配置文件中的与nacos服务相关的配置不会被application配置文件覆盖
但是如果想要在bootstrap中配置项目应用所需的属性,那么优先级低于application配置文件。会被覆盖
这也符合bootstrap本身是用于引导的作用。
至于nacos服务器上的配置,默认最大(可以配置修改),即使是命令参数也无法覆盖。
正则表达式与IDEA的碰撞
在进行SpringBoot版本升级的时候涉及到FeignClient对于相同的value只能存在一个,解决办法可以允许spring的bean覆盖或者给没一个bean加上一个ContextId保证唯一性,当然最好的还是重构,但是涉及点太多而且不敢动。
想通过全局替换进行添加东西,但是当时没有找到解决方案
一个月后翻IDEA的使用教程发现了正确方法,一张图告诉你它该有的样子
@FeignClient\(.*value\s*=\s*"(.*)"(.*)
@FeignClient\(name = "$1"$2
Idea官方文档:使用正则表达式捕获组和反向引用
Manjaro安装deb包
背景
使用yay安装的钉钉自动下载更新是个deb包,但是Arch Manjaro不能直接进行deb包的安装,我们需要借助debtap进行安装deb包
安装debtap
yay -S debtap
装换deb包为pkg.tar.zst包
~/.config/DingTalk/userdata/package debtap com.alibabainc.dingtalk_7.1.0.31113_amd64.deb ==> Extracting package data...==> Fixing possible directories structure differencies...==> Generating .PKGINFO file...:: Enter Packager name (can be left blank)::: Enter package license (can be left blank, you can enter multiple licens ...