3 jwolf2

尚未进行身份认证

我要认证

华山论剑

等级
TA的排名 5w+

springcloud2.2.1 oauth2实现用户认证授权及sso

基于cas实现的sso虽然实现比较简单,但功能实在是单一,性能(每个请求都有验证ticket),可靠性(必须保证认证服务器高可用)都得打个问号,而oauth2功能强大,整合spring security,jwt,能实现一套用户session管理,token刷新,权限控制,单点登录等,是一套强大的组合拳,oauth2也是第三方微信,QQ授权登录的核心。一、基本原理二、认证服务器雏形1.依赖<?xml version="1.0" encoding="UTF-8"?>...

2020-10-31 17:56:00

基于CAS的WEB单点登录(sso)客户端集成到业务系统,原理探索(cookie,ticket)

服务端搭建参考1.客户端jar包追加到业务系统<dependency> <groupId>net.unicon.cas</groupId> <artifactId>cas-client-autoconfig-support</artifactId> <version>1.7.0-GA</version> </depende

2020-10-27 19:11:31

基于CAS的WEB单点登录(sso)服务端及其tomcat/nginx https配置

一、关于SSO单点登录单点登录sso的实现常见的有Oauth2(当前主流,较复杂)和CAS(Center Authentication Server),它们的区别。这里先研究一把apereo实现的CAS SSO。二、CAS基本原理,参考https://www.jianshu.com/p/b7de8e4cf217 访问服务:SSO 客户端发送请求访问应用系统提供的服务资源。 定向认证:SSO 客户端会重定向用户请求到 SSO 服务器。 用户认证:用户身份认证。 发放票据...

2020-10-27 16:15:54

vue前端项目jenkins构建

流程描述:选择适当的模板进行配置,freestyle project和pipeline都比较简单。jenkin所在机器需要git,node环境,主要通过git拉取代码,执行npm run XXX 进行打包,然后将打包文件移到到nginx转发的静态资源目录即可。1.选择模板2.以freestyle project模板构建配置自定义参数配置代码库,如果是jenkins与git库同主机,repository URL只需要配置文件绝对路径如/data/git/op.git,不需要凭证。如果非

2020-10-13 22:59:32

k8s ingress-nginx服务发现基本原理与部署

1.为什么需要ingress k8s可以通过NodePort /LoadBalancer暴露服务,但这种方式会暴露过多端口,使服务器安全性降低(一般只暴露80/433两个端口即可),另外如果nginx直接配置反向代理到k8s服务比较麻烦,使用ingress可以简化nginx配置。2. 基本原理理解externalLB为k8s外部LB,如F5硬LB等;IngressController相当于部署在K8S内部的Nginx服务,该服务通过NodePort方式暴露为外面可以访问的Service(80..

2020-10-13 13:10:52

业务系统与中间件k8s容器化部署实践——redis+nodejs/springboot单体应用

单体应用### 业务镜像一般来自cicd推送的docker私库,这里手动创建一个demo,java/nodejs应用均可(在普通node节点操作)1.需要node环境,node -v ,没有就安装一下yum install node -y2.nodejs业务程序,文件内容如下: var http=require('http'); var handleRequest = function(request, response) { console.log('Received req...

2020-10-11 02:49:49

k8s yaml资源描述文件的基本使用及各种资源的创建

k8s命令使用总结1.kubectl较多,可以安装一下命令提示:echo "source <(kubectl completion bash)" >> ~/.bashrc2.常见语法格式为:kubectl [command,如createdelete set get 等] [TYPE ,如deployment,pod,service,node] [ NAME,资源命令 ] [其它,如 -o yaml ,-n default 等]3.命令列表,kubectl --hel...

2020-10-10 00:07:31

从0开始使用kubeadm快速搭建k8s集群

一.准备工作(所有节点)1.准备3台虚拟机(克隆)或物理机,2GB内存(如果资源有限,其中两台可以少给点内存,停止其它没必要的服务),2个CPU以上(1个CPU安装过程中会报错)2.关闭防火墙:systemctl stop firewalld && systemctl disable firewalld3.关闭selinux:sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 04.

2020-10-09 12:18:09

docker swarm服务编排实战

1.docker swarm简介 docker swarm是docker 自带的服务编排工具,可以简单实现多台主机的docker容器集中管理,较k8s使用更简单。Swarm 集群中每台 主机称为一个节点。其中主动初始化一个 Swarm 集群的节点称为管理节点leader(Manager leader),加入一个Swarm 集群的节点称为工作节点(Worker Node)。工作节点是任务执行节点,管理节点将任务下发至工作节点执行。管理节点默认也作为工作节点。一个 Swarm 集群可以有多个管理节点,但..

2020-09-28 23:02:36

基于docker-compose快速玩转graylog

1.总体架构。mongo用于储存元数据及配置信息,暂用资源少,类似ZK。ES储存日志等数据,graylog类似于kibanan/grafana,初体验感觉是有较多不足2.docker-compose快速搭建,注意虚拟机内存给4G左右,否则启动相当慢。启动:docker-compose -f docker-compose.yml up -dversion: '2'services: # MongoDB: https://hub.docker.com/_/mongo/ mongo: .

2020-09-28 13:26:24

swagger2在线文档使用的注意点

1.全局参数,如全局请求头header设置,这里设置token——含有用户信息的jwt@Configurationpublic class SwaggerConfig { @Bean @Profile({"test","dev"}) public Docket testApi() { Parameter parameter = new ParameterBuilder() .name("token") .description("

2020-09-25 12:40:09

linux简单实现开机自动启动服务,自动执行脚本

一般yum安装的软件都自带服务脚本,可以直接systemctl start/stop/restart/enable/statusXXX或service XXXstart/stop/restart/enable/status,或docker容器可以增加 --restart=always实现自动开机启动。但有时需要开机执行一些脚本,或开机启动jar包等,可以这样自定义服务。1.服务脚本位置/etc/systemd/system 或 /usr/lib/systemd/system2.进入...

2020-09-23 13:54:27

高效序列化protobuf测试——确实不错

1.Github下载protobuf编译工具 ,如windown版本protoc-3.13.0-win64.zip2.进入解压包,编写.proto文件,语法详解3.进入该目录执行cmd命令:protoc.exe --java_out= ./ test.proto 在当前文件目录下生成java文件4.将Java文件copy到项目中,并导入需要的依赖<dependency> <groupId>com.google.protobuf</groupId&g

2020-09-22 19:08:16

ribbon负载均衡及restTemplate拦截器,重试机制

需要加入spring-retry包才会注入RetryLoadBalancerInterceptor这个拦截器实现多实例部署重试,但是调用端调用超时导致重试注意幂等问题,重试超时时间与熔断时间合理

2020-09-17 16:51:02

redis改为docker化安装与数据迁移分分钟搞定

1.找到之前非docker安装的Redis配置文件redis.conf及数据持久化文件dump.rdb(默认)/appendonly.aof,放置到新的文件/目录/etc/redis/redis.conf/home/data/redis-data2.docker启动Redis,如果使用aof持久化,再最后启动参数加上--appendonly yes或Redis.conf配置docker run -p 6379:6379 --name redis -v /etc/redis/redis....

2020-09-09 17:20:37

之前数据库设计的做得不好的几个点总结-mysql

1.表中所有字段必须都是NOT NULL属性,业务可以根据需要定义DEFAULT值。a)null的列MySQL内部需要更多的特殊处理,消耗更多资源;b)对null的处理时候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where status!=1,查询结果不会包含status为null值的记录,另外:负向查询条件:、!=、NOT IN、NOT LIKE等,会导致全表扫描,避免使用2.避免使用blob...

2020-09-01 22:31:09

nacos1.2升级nacos1.3解决nacos开启权限控制后出现403问题

一、异常现象nacos1.2应该是不支持权限管理的,配置开nacos.core.auth.enabled=true 会频繁报错/ncaos/v1/ns/instance/beat 403异常,服务无法注册到nacos,githup也有较多403的issue二、解决方法:升级1.3或修改1.2的源码三、升级1.3注意事项nacos server升级1.3后,Java client也得跟着升级至适合版本。直接升级nacos-config,nacos-discovery两个jar启动应该会报错

2020-08-24 18:01:56

@JsonFormat @DateTimeFormat 区别与jackson全局序列化反序列化设置

因为不懂,用的滚瓜烂熟的几个注解@Requestbody @Responsebody默认使用的是jackson序列化,反序列化,但是其默认常常无法满足我们的需求,如日期,时间类型常常需要使用@JsonFormat @DateTimeFormat等注解来实现标准yyyy-MM-dd HH:mm:ss字符串与日期时间的转换。 常用的Long类型雪花ID 字段常常加@JsonSerialize(using = ToStringSerializer.class),将long序列化为字符串,避免精度丢失;...

2020-08-24 17:12:09

mysql5.7迁移oracle11g

一、docker 安装oracle11gdocker run -d --privileged=true -p 8888:1521-v /home/work/oracle/:/u01/app/oracle/oradata - v /etc/localtime:/etc/localtime --name oracle alexeiled/docker-oracle-xe-11g说明:1. 简单的管理页面端口8080,没用,就不必暴露了2.表空间文件挂载出来,但如果重新创建oracle...

2020-08-17 21:36:04

基于极光推送的web,app消息系统

设计要点1.web,app注册系统同时注册极光IM2.WEB集成IM sdk,用户WEB登录与极光IM建立长连接3.后端调用极光IM API给WEB用户推送消息,并将信息存入持久化到DB4.用户下载登录app,自动注册极光统计用户,并与极光jpush云建立长连接5.后端调用极光JPUSH API给APP用户推送消息,并将信息存入持久化到DB后端核心代码1.依赖 <!--极光JPUSH--> <dependency>

2020-08-15 13:06:48

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。