Dane.shang小开发

TA的文章
  • 阿里微服务注册中心与配置中心Nacos部署过程
    前言:Nacos是阿里近几年开源的服务发现+配置中心组件,近几年非常的火,各大公司也在慢慢的接受升级。相比较eureka 和 spring cloud config 而言,Nacos 更加的方便好用,开箱即用的组件,基于mysql的配置持久化,集群快速搭建等等等,而传统的eureka 注册中心繁琐的配置过程,cloud config 基于 中央仓库的繁琐配置,nacos才是我心中的好用。 搭建过程 Nacos有两种使用方式,开箱即用的解压包安装,还有Nacos的git开源项目自行打包构建,由于官方包基础功能基本已经很完善,实际使用中基本上很少需要自己基于官方开源项目二次封装,如果真的有需求,自...
    •  0
    •  0
    •  2020-05-30
  • security 框架如何代码控制用户退出登录
    前言:在开发过程中,有块业务场景是需要退出用户登录,但是security框架中,认证登录和退出登录的方法都被限制的很死,没有可以直接调用的方法块,基于我使用的配置基于redis的认证,需要手动实现用户退出登录。 解决方案:Security框架有提供一个TokenStore的接口,其中有直接操作token的方法,但是比较原子化,需要自己写一个通用退出登录方法使用。 代码如下: public void logout(Integer tenantId , String username){ if(StringUtils.isBlank(clientStr)) { retur...
    •  0
    •  0
    •  2020-05-23
  • spring cloud gateway如何修改返回response
    前言:项目过程中,做数据字段权限,需要在接口返回过程中,动态的抹去一些字段的值。于是我就提出在api网关中,动态获取用户角色接口字段权限,来控制是否抹去response中data的值。 1,众所周知,gateway是基于一些列的过滤器及请求转发,来实现api请求聚合,鉴权,限流等功能的,那么修改response同样只需要在全局过滤器中,将reponse中的datajson数据进行修改。 实现过程: 1,定义过滤器 @Configuration public class ResponseGlobalFilter implements GlobalFilter, Ordered { @O...
    •  1
    •  1
    •  2020-05-23
  • MYSQL 解决查询区分大小写
    项目碰到一个需求,是要模糊搜索某个字段,不区分大小写。 我开始产生疑问,难道Mysql数据库不是自动不区分大小写的吗? 调试了一圈后发现,原来数据库查询区不区分大小写,主要取决于表的 校对规则。 在表设置里面,又一个默认排序规则,里面有很多当前设置字符集开头的选项,里面以_bin结尾的,是区分大小写的,以_ci结尾的,是不区分大小写的。 设置表校对规则后,正常来说是可以进行 like查询 不区分大小写的,测试结果仍然不行。排查后发现,原来跟字符集设置一样,每个字段也要设置校对规则,才会具体起作用。 到此,问题解决。
    •  1
    •  0
    •  2020-03-23
  • 解决MYSQL 无法存储表情
    大家都知道,MYSQL 正常如果设置 字符集为 utf-8mb4 ,就可以存储一些四个字节的表情。 但是在项目中遇到一种情况,原有的表字符集为utf-8 ,无法正常存储表情或者其他四个字节长度的信息,修改表的字符集为utf-8mb4后,仍然无法存储。 后来排查发现,光设置表的字符集是不够的,还需要设置需要存储表情的字段的字符集。 尝试设置报错字段的字符集,问题解决。 拓展:如果设置表的字符集,数据库的字符集也要设置,不然仍然无法正常保存四个字节的信息。
    •  0
    •  1
    •  2020-03-23
  • Jenkins 配置多节点构建
    项目需要,需要配置Jenkins部署一个服务两个节点。 前置步骤: 1,Jenkins 安装,启动成功。 2,Jenkins 添加 publish over ssh插件。 3,正常配置 Jenkins 到 两个节点服务器的 ssh信任。 下面开始配置 1,Jenkins --> 系统管理 --> 系统配置 --> Publish over SSH 添加两台服务器 , Remote Directory 填写 远程服务器的文件目录。 2,新建maven 项目,其他部分都正常填写,Post Steps 部分选择 Send files or execute commands over ssh 添加一台...
    •  0
    •  0
    •  2020-03-23
  • 记一次查RDS错误日志
    今天在登陆RDS查看慢sql的时候,查看日志发现异常情况,日志显示有三台主机在不停的尝试链接RDS,但是都被拒绝访问了。 一开始怀疑是主机上有啥定时任务,可能配错了RDS的数据库密码,导致不停的尝试链接。 于是问了一圈,没有哪个部门在跑定时任务。 于是分别登陆服务器上查看 使用命令 : crontab -l 查看没有系统级别的定时任务。 使用命令: cut -d : -f 1 /etc/passwd 查看用户列表,一大堆,放弃每个都切换看定时任务。 无果的情况下,开始检查主机上的进程和服务。 注意到,另外两台主机分别跑了我的几个服务,第三台主机上只运行了一台nacos集群节点。 如果说服务配错...
    •  0
    •  3
    •  2019-11-21
  • nginx配置HTTPS
    最近公司出钱,买到了一个域名下的https证书,我来配置下。 1,scp 命令将阿里买到https证书上传到nginx 目录下,可以建立一个文件夹专门放不同的证书,我这里就只放一个,就直接扔根目录下了。 2,配置nginx.conf配置文件。 (1),将原来的监听80端口的server 改为监听443 ssl端口,并且加上 ssl_certificate 和 ssl_certificate_key来分别对呀下载的.pem 和 .key文件的全路径地址。 此时,访问https应该是能够正常访问了,但是,这时候再去访问http的80端口,仍然可以访问到http协议的地址,这时候,我们就要将监听的8...
    •  2
    •  0
    •  2019-10-29
  • Spring Security如何进行自定义密码校验
    众所周知,Spring Security框架中,关于登陆认证这一块,官方似乎过于封闭,仅仅提供了几个模式,比如密码模式,客户端模式,等等等,但是我们要想自己实现一个模式的话,就比较麻烦了。 我在项目中,其实由于产品的原因,是要求数据库存储的密码,要求非明文,并且是可逆的, 而spring security原生的密码校验,似乎和我们往常登陆中的校验有些不一样。 那我就来跟一下源码看看吧。 1,首先前面的咱们就不说了,无非是进入登陆的主入口,TokenEndpoint类中的/oath/token映射的方法中。 这个类在spring-security-oauth jar包中的,/org/spring...
    •  0
    •  1
    •  2019-09-08
  • 记一个spring注解式事物不生效问题
    今天同事找到我说我给的demo项目的Spring @Transactional注解无法生效了。由于框架是我搭的,于是我就开始排查问题。 思路一:怀疑异常被捕获了。 众所周知,spring @Transactional注解是利用动态代理的方式,生成一个当前被spring管理的类的代理对象,并通过在代理方法的前后进行事物的边界提交和回滚。如果异常被捕获了,那么代理方法后就无法捕获到异常,代理对象就无法对事物进行回滚。 然而,我看了他们的代码,并没有自己捕获异常,于是此怀疑推翻。 思路二:怀疑抛出的不是RuntimeException,Spring 的默认事物管理器无法捕获非RuntimeExcep...
    •  0
    •  1
    •  2019-09-04