Spring Cloud中如何保证各个微服务之间调用的安全性

2019/7/13 posted in  SpringCloud

SpringBoot自定义错误

@ControllerAdvice 可以处理应用级别的异常,有一些容器级别的错误就处理不了,例如 Filter 中抛出异常,使用@ControllerAdvice 定义的全局异常处理机制就无法处理。
可以增加一个配置类,这个类继承 DefaultErrorAttributes 即可。如果想完全自定义错误机制(指json和html),新建一个controller,继承BasicErrorController即可

2019/7/8 posted in  SpringBoot

Docker重要概念

Docker镜像 (Image)
Docker容器 (Container)
Docker仓库 (Registry)

2019/6/21 posted in  Docker

设计模式总结

面向对象编程几年了,一直没有总结一下设计模式,现在略总结一下。
设计模式其实是一直编程方法和思想,为了是代码的维护性,可扩展性,复用性和灵活性,是前人总结出来的代码最佳实践。
接下里的总结几乎没有代码,是粗略描述各个设计模式使用的思想和场景。

阅读更多   2019/5/31 posted in  设计模式

安装插件

  1. .ignore
  2. Alibaba Java Coding Guidelines alibaba
  3. Mavnen Helper
  4. Translation
  5. Vue.js
  6. Lombok
  7. Rainbow Brackets
  8. Mybatis-log-plugin
  9. mybatisx
2019/5/28 posted in  IntelliJIDEA

dockerfile和docker-compose的区别

docker-compose是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就ok了。
而dockerfile的作用是从无到有的构建镜像。

2019/5/22 posted in  Docker

Public Key Retrieval is not allowed

今天新搭建了一个项目,数据库是用的MySQL 8.0.15,拷贝的原来项目的数据库配置,但是报
Public Key Retrieval is not allowed的错误,只需要在url后面增加&allowPublicKeyRetrieval=true既可解决。
例如:jdbc:mysql://${MYSQL-HOST:localhost}:${MYSQL-PORT:3306}/${MYSQL-DB:dengyuanke}?characterEncoding=utf8&allowPublicKeyRetrieval=true&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true

2019/5/13 posted in  MySQL&MariaDB

Spring Security OAuth2

授权模式

从阮一峰的教程中,可以看到授权模式有四种:

  • authorization_code (授权码)
  • implicit (隐式许可)
  • password (用户名和密码)
  • client_credentials (客户端凭证)

OAuth2服务提供方的实现

OAuth2中,有 Authorization Server和Resource Server。通常情况下,我们可以把这两个Server包含在一个应用中。

spring security中, org.springframework.security.oauth2.provider包下都是OAuth2服务提供方的实现所需要的类。

两个核心类,AuthorizationEndpoint的用途是请求者用来获取授权,TokenEndpoint的用途是请求者用来获取Token的。

服务配置过程

EnableAuthorizationServer

EnableAuthorizationServer注解用来配置Authorization Server。

这个注解引入两个配置类AuthorizationServerEndpointsConfiguration和AuthorizationServerSecurityConfiguration。

AuthorizationServerEndpointsConfiguration中初始化了各种endpoint:

其中包括AuthorizationEndpoint,TokenEndpoint,CheckTokenEndpoint,WhitelabelApprovalEndpoint,WhitelabelErrorEndpoint。

从各种endpoint来看,spring security帮我们定义好了如下几个uri对应的服务。

/oauth/authorize:授权

/oauth/token:令牌

/oauth/confirm_access:用户确认授权提交

/oauth/error:授权服务错误信息

/oauth/check_token:用于资源服务访问的令牌解析

/oauth/token_key:提供公有密匙的端点,如果你使用JWT令牌的话

AuthorizationServerSecurityConfiguration引入了配置类ClientDetailsServiceConfiguration和AuthorizationServerEndpointsConfiguration。并且
ClientDetailsServiceConfiguration

EnableResourceServer

EnableResourceServer引入了ResourceServerConfiguration配置

2019/5/9 posted in  SpringCloud

API 最佳实践

初衷

旨在对api规划之初做出约定,使研发成员建立默契,提升研发品质和效率

协议

使用 https 协议最佳

阅读更多   2019/5/9 posted in  SpringBoot

Docker 安装单机Minio

docker pull minio/minio

在Docker中运行Minio单点模式

docker run -p 9000:9000 -e MINIO_ACCESS_KEY=dengyuanke -e MINIO_SECRET_KEY=dengyuanke minio/minio server /data

阅读更多   2019/4/30 posted in  Docker