mirror of
				https://github.com/SourceFellows/gobuch.git
				synced 2025-11-04 07:36:19 +01:00 
			
		
		
		
	initial import
This commit is contained in:
		
							
								
								
									
										7
									
								
								microservices/container/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								microservices/container/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
FROM golang:latest
 | 
			
		||||
 | 
			
		||||
COPY main.go /app/main.go
 | 
			
		||||
WORKDIR /app
 | 
			
		||||
RUN go build main.go
 | 
			
		||||
 | 
			
		||||
CMD [ "/app/main"]
 | 
			
		||||
							
								
								
									
										6
									
								
								microservices/container/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								microservices/container/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
# Ausführen
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
docker build -t microservice-buch .
 | 
			
		||||
docker run  microservice-buch
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										7
									
								
								microservices/container/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								microservices/container/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import "fmt"
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	fmt.Println("Hello World!")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								microservices/default-mux-demo/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								microservices/default-mux-demo/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import "net/http"
 | 
			
		||||
 | 
			
		||||
type myHandler struct {
 | 
			
		||||
	Name string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (h *myHandler) ServeHTTP(r http.ResponseWriter, _ *http.Request) {
 | 
			
		||||
	r.Write([]byte(h.Name))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	handler1 := &myHandler{Name: "handler1"}
 | 
			
		||||
	handler2 := &myHandler{Name: "handler2"}
 | 
			
		||||
	handler3 := &myHandler{Name: "handler3"}
 | 
			
		||||
	handler4 := &myHandler{Name: "handler4"}
 | 
			
		||||
	handler5 := &myHandler{Name: "handler5"}
 | 
			
		||||
	handler6 := &myHandler{Name: "handler6"}
 | 
			
		||||
 | 
			
		||||
	http.Handle("/", handler1)
 | 
			
		||||
	http.Handle("/book", handler2)
 | 
			
		||||
	http.Handle("/books/", handler3)
 | 
			
		||||
	http.Handle("/books/Hobbit", handler4)
 | 
			
		||||
	http.Handle("/theme", handler5)
 | 
			
		||||
	http.Handle("/theme/", handler6)
 | 
			
		||||
	http.ListenAndServeTLS(":8080", nil)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								microservices/formrequest/Form-request.http
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								microservices/formrequest/Form-request.http
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
POST http://localhost:8080/ HTTP/1.1
 | 
			
		||||
Content-Type: application/x-www-form-urlencoded
 | 
			
		||||
 | 
			
		||||
name=Peter
 | 
			
		||||
							
								
								
									
										3
									
								
								microservices/formrequest/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								microservices/formrequest/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
module golang.source-fellows.com/samples/formrequest
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
							
								
								
									
										18
									
								
								microservices/formrequest/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								microservices/formrequest/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import "net/http"
 | 
			
		||||
 | 
			
		||||
func handleForm(rw http.ResponseWriter, rq *http.Request) {
 | 
			
		||||
	err := rq.ParseForm()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		rw.WriteHeader(http.StatusNotAcceptable)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	name := rq.Form.Get("name")
 | 
			
		||||
	rw.Write([]byte("Hello " + name))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	http.HandleFunc("/", handleForm)
 | 
			
		||||
	http.ListenAndServe(":8080", nil)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								microservices/go-channel/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								microservices/go-channel/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"math/rand"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
 | 
			
		||||
	tc := make(chan time.Time)
 | 
			
		||||
 | 
			
		||||
	var c int64 = 0
 | 
			
		||||
 | 
			
		||||
	go func() {
 | 
			
		||||
		for {
 | 
			
		||||
			go func() {
 | 
			
		||||
				for {
 | 
			
		||||
					c++
 | 
			
		||||
					i := rand.Int31n(10)
 | 
			
		||||
					time.Sleep(time.Duration(i) * time.Millisecond)
 | 
			
		||||
					tc <- time.Now()
 | 
			
		||||
				}
 | 
			
		||||
			}()
 | 
			
		||||
		}
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	for t := range tc {
 | 
			
		||||
		fmt.Println(t)
 | 
			
		||||
		fmt.Println(c)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								microservices/gorilla-mux/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								microservices/gorilla-mux/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
module golang.source-fellows.com/samples/gorillamux
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
 | 
			
		||||
require github.com/gorilla/mux v1.7.4
 | 
			
		||||
							
								
								
									
										2
									
								
								microservices/gorilla-mux/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								microservices/gorilla-mux/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc=
 | 
			
		||||
github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
 | 
			
		||||
							
								
								
									
										18
									
								
								microservices/gorilla-mux/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								microservices/gorilla-mux/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	"github.com/gorilla/mux"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func myFunc(rw http.ResponseWriter, rq *http.Request) {
 | 
			
		||||
	rw.Write([]byte("Hello World"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	r := mux.NewRouter()
 | 
			
		||||
	r.PathPrefix("/").HandlerFunc(myFunc)
 | 
			
		||||
	r.Methods("GET")
 | 
			
		||||
	http.ListenAndServe(":8080", r)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								microservices/gorm-hooks/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								microservices/gorm-hooks/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
module golang.source-fellows.com/samples/gorm
 | 
			
		||||
 | 
			
		||||
go 1.14
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/Unknwon/log v0.0.0-20200308114134-929b1006e34a
 | 
			
		||||
	github.com/jinzhu/gorm v1.9.14
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										27
									
								
								microservices/gorm-hooks/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								microservices/gorm-hooks/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
 | 
			
		||||
github.com/Unknwon/log v0.0.0-20200308114134-929b1006e34a h1:2/IoPLpPzmKDdgAfM0aQVp71xVK5G/FKUqPWHQw5xp8=
 | 
			
		||||
github.com/Unknwon/log v0.0.0-20200308114134-929b1006e34a/go.mod h1:/+ZenhmdkCX8gc8YHVQRSdVGE/+F9HvTY6QDTwEbaO4=
 | 
			
		||||
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 | 
			
		||||
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
 | 
			
		||||
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
 | 
			
		||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 | 
			
		||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
 | 
			
		||||
github.com/jinzhu/gorm v1.9.14 h1:Kg3ShyTPcM6nzVo148fRrcMO6MNKuqtOUwnzqMgVniM=
 | 
			
		||||
github.com/jinzhu/gorm v1.9.14/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
 | 
			
		||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 | 
			
		||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
 | 
			
		||||
github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 | 
			
		||||
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.0 h1:mLyGNKR8+Vv9CAU7PphKa2hkEqxxhn8i32J6FPj1/QA=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
							
								
								
									
										58
									
								
								microservices/gorm-hooks/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								microservices/gorm-hooks/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	"github.com/jinzhu/gorm"
 | 
			
		||||
	_ "github.com/jinzhu/gorm/dialects/sqlite"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Customer struct {
 | 
			
		||||
	gorm.Model
 | 
			
		||||
	FirstName string
 | 
			
		||||
	LastName  string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (u *Customer) BeforeUpdate() (err error) {
 | 
			
		||||
	fmt.Println("before update")
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	db, err := gorm.Open("sqlite3", "test.db")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic("failed to connect database")
 | 
			
		||||
	}
 | 
			
		||||
	defer db.Close()
 | 
			
		||||
 | 
			
		||||
	// LogMode enable
 | 
			
		||||
	db.LogMode(true)
 | 
			
		||||
 | 
			
		||||
	// Migrate the schema
 | 
			
		||||
	err = db.AutoMigrate(&Customer{}).Error
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatalf("error migrating ", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Create
 | 
			
		||||
	customer := Customer{FirstName: "Hans", LastName: "wurst"}
 | 
			
		||||
	db.Create(&customer)
 | 
			
		||||
 | 
			
		||||
	var foundCustomer Customer
 | 
			
		||||
	// Plain SQL
 | 
			
		||||
	db.First(&foundCustomer, "First_Name = ?", "Hans")
 | 
			
		||||
	// Template
 | 
			
		||||
	db.Where(&Customer{FirstName: "Hans"}).First(&foundCustomer)
 | 
			
		||||
 | 
			
		||||
	fmt.Println("Gefunden wurde:", foundCustomer.FirstName)
 | 
			
		||||
 | 
			
		||||
	// Update - update product's price to 2000
 | 
			
		||||
	db.Model(&foundCustomer).Update("LastName", "Meiser")
 | 
			
		||||
 | 
			
		||||
	err = db.Delete(&foundCustomer).Error
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								microservices/gorm-hooks/test.db
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								microservices/gorm-hooks/test.db
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										5
									
								
								microservices/gorm-relation/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								microservices/gorm-relation/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
module golang.source-fellows.com/samples/gormrelation
 | 
			
		||||
 | 
			
		||||
go 1.14
 | 
			
		||||
 | 
			
		||||
require github.com/jinzhu/gorm v1.9.14
 | 
			
		||||
							
								
								
									
										32
									
								
								microservices/gorm-relation/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								microservices/gorm-relation/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
 | 
			
		||||
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 | 
			
		||||
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd h1:83Wprp6ROGeiHFAP8WJdI2RoxALQYgdllERc3N5N2DM=
 | 
			
		||||
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
 | 
			
		||||
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y=
 | 
			
		||||
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
 | 
			
		||||
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
 | 
			
		||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 | 
			
		||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
 | 
			
		||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
 | 
			
		||||
github.com/jinzhu/gorm v1.9.14 h1:Kg3ShyTPcM6nzVo148fRrcMO6MNKuqtOUwnzqMgVniM=
 | 
			
		||||
github.com/jinzhu/gorm v1.9.14/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
 | 
			
		||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 | 
			
		||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
 | 
			
		||||
github.com/jinzhu/now v1.0.1 h1:HjfetcXq097iXP0uoPCdnM4Efp5/9MsM0/M+XOTeR3M=
 | 
			
		||||
github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 | 
			
		||||
github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4=
 | 
			
		||||
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.0 h1:mLyGNKR8+Vv9CAU7PphKa2hkEqxxhn8i32J6FPj1/QA=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd h1:GGJVjV8waZKRHrgwvtH66z9ZGVurTD1MT0n1Bb+q4aM=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
							
								
								
									
										51
									
								
								microservices/gorm-relation/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								microservices/gorm-relation/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/jinzhu/gorm"
 | 
			
		||||
	_ "github.com/jinzhu/gorm/dialects/sqlite"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Customer struct {
 | 
			
		||||
	gorm.Model
 | 
			
		||||
	FirstName    string
 | 
			
		||||
	LastName     string
 | 
			
		||||
	CreditCard   CreditCard
 | 
			
		||||
	CreditCardId uint
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreditCard struct {
 | 
			
		||||
	gorm.Model
 | 
			
		||||
	Number string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	db, err := gorm.Open("sqlite3", "test.db")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic("failed to connect database")
 | 
			
		||||
	}
 | 
			
		||||
	defer db.Close()
 | 
			
		||||
 | 
			
		||||
	// LogMode enable
 | 
			
		||||
	db.LogMode(true)
 | 
			
		||||
 | 
			
		||||
	// Migrate the schema
 | 
			
		||||
	db.AutoMigrate(&CreditCard{}, &Customer{})
 | 
			
		||||
 | 
			
		||||
	// Create
 | 
			
		||||
	customer := Customer{FirstName: "Hans", LastName: "wurst"}
 | 
			
		||||
	customer.CreditCard = CreditCard{Number: "123-123-123"}
 | 
			
		||||
	db.Set("gorm:association_autoupdate", false).Set("gorm:association_autoupdate", true).Create(&customer)
 | 
			
		||||
 | 
			
		||||
	var foundCustomer Customer
 | 
			
		||||
	var foundCreditCard CreditCard
 | 
			
		||||
 | 
			
		||||
	db.Where(&Customer{FirstName: "Hans"}).First(&foundCustomer)
 | 
			
		||||
	db.Model(&foundCustomer).Related(&foundCreditCard)
 | 
			
		||||
 | 
			
		||||
	fmt.Println("Gefunden wurde:", foundCreditCard.Number)
 | 
			
		||||
 | 
			
		||||
	db.Delete(&foundCustomer)
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								microservices/gorm/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								microservices/gorm/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
module golang.source-fellows.com/samples/gorm
 | 
			
		||||
 | 
			
		||||
go 1.14
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/Unknwon/log v0.0.0-20200308114134-929b1006e34a
 | 
			
		||||
	github.com/jinzhu/gorm v1.9.14
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										27
									
								
								microservices/gorm/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								microservices/gorm/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
 | 
			
		||||
github.com/Unknwon/log v0.0.0-20200308114134-929b1006e34a h1:2/IoPLpPzmKDdgAfM0aQVp71xVK5G/FKUqPWHQw5xp8=
 | 
			
		||||
github.com/Unknwon/log v0.0.0-20200308114134-929b1006e34a/go.mod h1:/+ZenhmdkCX8gc8YHVQRSdVGE/+F9HvTY6QDTwEbaO4=
 | 
			
		||||
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 | 
			
		||||
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
 | 
			
		||||
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
 | 
			
		||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 | 
			
		||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
 | 
			
		||||
github.com/jinzhu/gorm v1.9.14 h1:Kg3ShyTPcM6nzVo148fRrcMO6MNKuqtOUwnzqMgVniM=
 | 
			
		||||
github.com/jinzhu/gorm v1.9.14/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
 | 
			
		||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 | 
			
		||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
 | 
			
		||||
github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 | 
			
		||||
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.0 h1:mLyGNKR8+Vv9CAU7PphKa2hkEqxxhn8i32J6FPj1/QA=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
							
								
								
									
										53
									
								
								microservices/gorm/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								microservices/gorm/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	"github.com/jinzhu/gorm"
 | 
			
		||||
	_ "github.com/jinzhu/gorm/dialects/sqlite"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Customer struct {
 | 
			
		||||
	gorm.Model
 | 
			
		||||
	FirstName string
 | 
			
		||||
	LastName  string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	db, err := gorm.Open("sqlite3", "test.db")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic("failed to connect database")
 | 
			
		||||
	}
 | 
			
		||||
	defer db.Close()
 | 
			
		||||
 | 
			
		||||
	// LogMode enable
 | 
			
		||||
	db.LogMode(true)
 | 
			
		||||
 | 
			
		||||
	// Migrate the schema
 | 
			
		||||
	err = db.AutoMigrate(&Customer{}).Error
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatalf("error migrating ", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Create
 | 
			
		||||
	customer := Customer{FirstName: "Hans", LastName: "wurst"}
 | 
			
		||||
	db.Create(&customer)
 | 
			
		||||
 | 
			
		||||
	var foundCustomer Customer
 | 
			
		||||
	// Plain SQL
 | 
			
		||||
	db.First(&foundCustomer, "First_Name = ?", "Hans")
 | 
			
		||||
	// Template
 | 
			
		||||
	db.Where(&Customer{FirstName: "Hans"}).First(&foundCustomer)
 | 
			
		||||
 | 
			
		||||
	fmt.Println("Gefunden wurde:", foundCustomer.FirstName)
 | 
			
		||||
 | 
			
		||||
	// Update - update product's price to 2000
 | 
			
		||||
	db.Model(&foundCustomer).Update("LastName", "Meiser")
 | 
			
		||||
 | 
			
		||||
	err = db.Delete(&foundCustomer).Error
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								microservices/grpc/client/cmd/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								microservices/grpc/client/cmd/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	"golang.source-fellows.com/samples/grpc/hello"
 | 
			
		||||
	"google.golang.org/grpc"
 | 
			
		||||
	"google.golang.org/protobuf/types/known/emptypb"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	con, _ := grpc.Dial(":8080", grpc.WithInsecure())
 | 
			
		||||
	client := hello.NewHelloWorldServiceClient(con)
 | 
			
		||||
 | 
			
		||||
	ctx := context.Background()
 | 
			
		||||
	answer, err := client.SayHello(ctx, &emptypb.Empty{})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	log.Println(answer.GetMessageText())
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								microservices/grpc/client/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								microservices/grpc/client/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
module golang.source-fellows.com/samples/grpc/client
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	golang.source-fellows.com/samples/grpc/hello v0.0.0
 | 
			
		||||
	google.golang.org/grpc v1.30.0
 | 
			
		||||
	google.golang.org/protobuf v1.25.0
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
replace golang.source-fellows.com/samples/grpc/hello => ./../hello
 | 
			
		||||
							
								
								
									
										78
									
								
								microservices/grpc/client/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								microservices/grpc/client/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 | 
			
		||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 | 
			
		||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 | 
			
		||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 | 
			
		||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 | 
			
		||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
 | 
			
		||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 | 
			
		||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
 | 
			
		||||
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
 | 
			
		||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 | 
			
		||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 | 
			
		||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
 | 
			
		||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 | 
			
		||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
 | 
			
		||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 | 
			
		||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 | 
			
		||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 | 
			
		||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 | 
			
		||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 | 
			
		||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 | 
			
		||||
google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE=
 | 
			
		||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
 | 
			
		||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 | 
			
		||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
 | 
			
		||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
 | 
			
		||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 | 
			
		||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
			
		||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
			
		||||
							
								
								
									
										9
									
								
								microservices/grpc/hello/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								microservices/grpc/hello/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
module golang.source-fellows.com/samples/grpc/hello
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/golang/protobuf v1.4.2
 | 
			
		||||
	google.golang.org/grpc v1.30.0
 | 
			
		||||
	google.golang.org/protobuf v1.25.0
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										75
									
								
								microservices/grpc/hello/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								microservices/grpc/hello/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 | 
			
		||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 | 
			
		||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 | 
			
		||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 | 
			
		||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 | 
			
		||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
 | 
			
		||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 | 
			
		||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
 | 
			
		||||
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
 | 
			
		||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 | 
			
		||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 | 
			
		||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 | 
			
		||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
 | 
			
		||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 | 
			
		||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 | 
			
		||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 | 
			
		||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 | 
			
		||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 | 
			
		||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 | 
			
		||||
google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE=
 | 
			
		||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
 | 
			
		||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 | 
			
		||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
 | 
			
		||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
 | 
			
		||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 | 
			
		||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
			
		||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
			
		||||
							
								
								
									
										161
									
								
								microservices/grpc/hello/hello-message.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								microservices/grpc/hello/hello-message.pb.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,161 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.25.0-devel
 | 
			
		||||
// 	protoc        v3.12.3
 | 
			
		||||
// source: hello-message.proto
 | 
			
		||||
 | 
			
		||||
package hello
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	proto "github.com/golang/protobuf/proto"
 | 
			
		||||
	empty "github.com/golang/protobuf/ptypes/empty"
 | 
			
		||||
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 | 
			
		||||
	reflect "reflect"
 | 
			
		||||
	sync "sync"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	// Verify that this generated code is sufficiently up-to-date.
 | 
			
		||||
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
 | 
			
		||||
	// Verify that runtime/protoimpl is sufficiently up-to-date.
 | 
			
		||||
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// This is a compile-time assertion that a sufficiently up-to-date version
 | 
			
		||||
// of the legacy proto package is being used.
 | 
			
		||||
const _ = proto.ProtoPackageIsVersion4
 | 
			
		||||
 | 
			
		||||
type HelloMessage struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	MessageText string `protobuf:"bytes,1,opt,name=messageText,proto3" json:"messageText,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *HelloMessage) Reset() {
 | 
			
		||||
	*x = HelloMessage{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_hello_message_proto_msgTypes[0]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *HelloMessage) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*HelloMessage) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *HelloMessage) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_hello_message_proto_msgTypes[0]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use HelloMessage.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*HelloMessage) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_hello_message_proto_rawDescGZIP(), []int{0}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *HelloMessage) GetMessageText() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.MessageText
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_hello_message_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_hello_message_proto_rawDesc = []byte{
 | 
			
		||||
	0x0a, 0x13, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e,
 | 
			
		||||
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x1a, 0x1b, 0x67, 0x6f,
 | 
			
		||||
	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d,
 | 
			
		||||
	0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x30, 0x0a, 0x0c, 0x48, 0x65, 0x6c,
 | 
			
		||||
	0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x73,
 | 
			
		||||
	0x73, 0x61, 0x67, 0x65, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
 | 
			
		||||
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x65, 0x78, 0x74, 0x32, 0x4c, 0x0a, 0x11, 0x48,
 | 
			
		||||
	0x65, 0x6c, 0x6c, 0x6f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
 | 
			
		||||
	0x12, 0x37, 0x0a, 0x08, 0x73, 0x61, 0x79, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x16, 0x2e, 0x67,
 | 
			
		||||
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
 | 
			
		||||
	0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x48, 0x65, 0x6c,
 | 
			
		||||
	0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x6f, 0x6c,
 | 
			
		||||
	0x61, 0x6e, 0x67, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x66, 0x65, 0x6c, 0x6c, 0x6f,
 | 
			
		||||
	0x77, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x67,
 | 
			
		||||
	0x72, 0x70, 0x63, 0x2f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 | 
			
		||||
	0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	file_hello_message_proto_rawDescOnce sync.Once
 | 
			
		||||
	file_hello_message_proto_rawDescData = file_hello_message_proto_rawDesc
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func file_hello_message_proto_rawDescGZIP() []byte {
 | 
			
		||||
	file_hello_message_proto_rawDescOnce.Do(func() {
 | 
			
		||||
		file_hello_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_hello_message_proto_rawDescData)
 | 
			
		||||
	})
 | 
			
		||||
	return file_hello_message_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_hello_message_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
 | 
			
		||||
var file_hello_message_proto_goTypes = []interface{}{
 | 
			
		||||
	(*HelloMessage)(nil), // 0: hello.HelloMessage
 | 
			
		||||
	(*empty.Empty)(nil),  // 1: google.protobuf.Empty
 | 
			
		||||
}
 | 
			
		||||
var file_hello_message_proto_depIdxs = []int32{
 | 
			
		||||
	1, // 0: hello.HelloWorldService.sayHello:input_type -> google.protobuf.Empty
 | 
			
		||||
	0, // 1: hello.HelloWorldService.sayHello:output_type -> hello.HelloMessage
 | 
			
		||||
	1, // [1:2] is the sub-list for method output_type
 | 
			
		||||
	0, // [0:1] is the sub-list for method input_type
 | 
			
		||||
	0, // [0:0] is the sub-list for extension type_name
 | 
			
		||||
	0, // [0:0] is the sub-list for extension extendee
 | 
			
		||||
	0, // [0:0] is the sub-list for field type_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() { file_hello_message_proto_init() }
 | 
			
		||||
func file_hello_message_proto_init() {
 | 
			
		||||
	if File_hello_message_proto != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if !protoimpl.UnsafeEnabled {
 | 
			
		||||
		file_hello_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*HelloMessage); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
		File: protoimpl.DescBuilder{
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_hello_message_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   1,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   1,
 | 
			
		||||
		},
 | 
			
		||||
		GoTypes:           file_hello_message_proto_goTypes,
 | 
			
		||||
		DependencyIndexes: file_hello_message_proto_depIdxs,
 | 
			
		||||
		MessageInfos:      file_hello_message_proto_msgTypes,
 | 
			
		||||
	}.Build()
 | 
			
		||||
	File_hello_message_proto = out.File
 | 
			
		||||
	file_hello_message_proto_rawDesc = nil
 | 
			
		||||
	file_hello_message_proto_goTypes = nil
 | 
			
		||||
	file_hello_message_proto_depIdxs = nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								microservices/grpc/hello/hello-message.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								microservices/grpc/hello/hello-message.proto
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
syntax="proto3";
 | 
			
		||||
 | 
			
		||||
package hello;
 | 
			
		||||
 | 
			
		||||
option go_package = "golang.source-fellows.com/samples/grpc/hello";
 | 
			
		||||
 | 
			
		||||
import "google/protobuf/empty.proto";
 | 
			
		||||
 | 
			
		||||
message HelloMessage {
 | 
			
		||||
    string messageText = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
service HelloWorldService {
 | 
			
		||||
    rpc sayHello(google.protobuf.Empty) returns (HelloMessage);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										91
									
								
								microservices/grpc/hello/hello-message_grpc.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								microservices/grpc/hello/hello-message_grpc.pb.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package hello
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	context "context"
 | 
			
		||||
	empty "github.com/golang/protobuf/ptypes/empty"
 | 
			
		||||
	grpc "google.golang.org/grpc"
 | 
			
		||||
	codes "google.golang.org/grpc/codes"
 | 
			
		||||
	status "google.golang.org/grpc/status"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// This is a compile-time assertion to ensure that this generated file
 | 
			
		||||
// is compatible with the grpc package it is being compiled against.
 | 
			
		||||
const _ = grpc.SupportPackageIsVersion6
 | 
			
		||||
 | 
			
		||||
// HelloWorldServiceClient is the client API for HelloWorldService service.
 | 
			
		||||
//
 | 
			
		||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 | 
			
		||||
type HelloWorldServiceClient interface {
 | 
			
		||||
	SayHello(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*HelloMessage, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type helloWorldServiceClient struct {
 | 
			
		||||
	cc grpc.ClientConnInterface
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewHelloWorldServiceClient(cc grpc.ClientConnInterface) HelloWorldServiceClient {
 | 
			
		||||
	return &helloWorldServiceClient{cc}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *helloWorldServiceClient) SayHello(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*HelloMessage, error) {
 | 
			
		||||
	out := new(HelloMessage)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/hello.HelloWorldService/sayHello", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// HelloWorldServiceServer is the server API for HelloWorldService service.
 | 
			
		||||
// All implementations must embed UnimplementedHelloWorldServiceServer
 | 
			
		||||
// for forward compatibility
 | 
			
		||||
type HelloWorldServiceServer interface {
 | 
			
		||||
	SayHello(context.Context, *empty.Empty) (*HelloMessage, error)
 | 
			
		||||
	mustEmbedUnimplementedHelloWorldServiceServer()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UnimplementedHelloWorldServiceServer must be embedded to have forward compatible implementations.
 | 
			
		||||
type UnimplementedHelloWorldServiceServer struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*UnimplementedHelloWorldServiceServer) SayHello(context.Context, *empty.Empty) (*HelloMessage, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method SayHello not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedHelloWorldServiceServer) mustEmbedUnimplementedHelloWorldServiceServer() {}
 | 
			
		||||
 | 
			
		||||
func RegisterHelloWorldServiceServer(s *grpc.Server, srv HelloWorldServiceServer) {
 | 
			
		||||
	s.RegisterService(&_HelloWorldService_serviceDesc, srv)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _HelloWorldService_SayHello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(empty.Empty)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(HelloWorldServiceServer).SayHello(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/hello.HelloWorldService/SayHello",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(HelloWorldServiceServer).SayHello(ctx, req.(*empty.Empty))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _HelloWorldService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
	ServiceName: "hello.HelloWorldService",
 | 
			
		||||
	HandlerType: (*HelloWorldServiceServer)(nil),
 | 
			
		||||
	Methods: []grpc.MethodDesc{
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "sayHello",
 | 
			
		||||
			Handler:    _HelloWorldService_SayHello_Handler,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	Streams:  []grpc.StreamDesc{},
 | 
			
		||||
	Metadata: "hello-message.proto",
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								microservices/grpc/server/cmd/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								microservices/grpc/server/cmd/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"log"
 | 
			
		||||
	"net"
 | 
			
		||||
 | 
			
		||||
	"golang.source-fellows.com/samples/grpc/hello"
 | 
			
		||||
	"golang.source-fellows.com/samples/grpc/server"
 | 
			
		||||
	"google.golang.org/grpc"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	srv := grpc.NewServer()
 | 
			
		||||
	hello.RegisterHelloWorldServiceServer(srv, &server.HelloService{})
 | 
			
		||||
	listener, _ := net.Listen("tcp", ":8080")
 | 
			
		||||
	log.Println("Starting Server ...")
 | 
			
		||||
	log.Fatal(srv.Serve(listener))
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								microservices/grpc/server/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								microservices/grpc/server/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
module golang.source-fellows.com/samples/grpc/server
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/golang/protobuf v1.4.2
 | 
			
		||||
	golang.source-fellows.com/samples/grpc/hello v0.0.0
 | 
			
		||||
	google.golang.org/grpc v1.30.0
 | 
			
		||||
	google.golang.org/grpc/cmd/protoc-gen-go-grpc v0.0.0-20200630190442-3de8449f8555 // indirect
 | 
			
		||||
	google.golang.org/protobuf v1.25.0
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
replace golang.source-fellows.com/samples/grpc/hello => ./../hello
 | 
			
		||||
							
								
								
									
										80
									
								
								microservices/grpc/server/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								microservices/grpc/server/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,80 @@
 | 
			
		||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 | 
			
		||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 | 
			
		||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 | 
			
		||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 | 
			
		||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
 | 
			
		||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 | 
			
		||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 | 
			
		||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 | 
			
		||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
 | 
			
		||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 | 
			
		||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
 | 
			
		||||
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
 | 
			
		||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 | 
			
		||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 | 
			
		||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 | 
			
		||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 | 
			
		||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 | 
			
		||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
 | 
			
		||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 | 
			
		||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
golang.source-fellows.com v0.0.0-20200619133407-79aa8981720c h1:c0BKYhs4PULAm3Hb5f+t9AcmPRScdSAkeuajndyOMLQ=
 | 
			
		||||
golang.source-fellows.com v0.0.0-20200619133407-79aa8981720c/go.mod h1:40F0hxiV+yxOJaUHRyBpnlLt4Cv2SQFKZNBKTvueCeI=
 | 
			
		||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
 | 
			
		||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 | 
			
		||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 | 
			
		||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 | 
			
		||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 | 
			
		||||
google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg=
 | 
			
		||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
 | 
			
		||||
google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE=
 | 
			
		||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 | 
			
		||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v0.0.0-20200630190442-3de8449f8555 h1:HYZFXlXJqim8gcoUICZN9oGXFPtw2GEBFm3ay9KZnxU=
 | 
			
		||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v0.0.0-20200630190442-3de8449f8555/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
 | 
			
		||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 | 
			
		||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
 | 
			
		||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
 | 
			
		||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 | 
			
		||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
			
		||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 | 
			
		||||
							
								
								
									
										17
									
								
								microservices/grpc/server/helloService.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								microservices/grpc/server/helloService.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
package server
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	context "context"
 | 
			
		||||
 | 
			
		||||
	empty "github.com/golang/protobuf/ptypes/empty"
 | 
			
		||||
	"golang.source-fellows.com/samples/grpc/hello"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type HelloService struct {
 | 
			
		||||
	hello.UnimplementedHelloWorldServiceServer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (hs *HelloService) SayHello(context.Context, *empty.Empty) (*hello.HelloMessage, error) {
 | 
			
		||||
	msg := &hello.HelloMessage{MessageText: "Hello World"}
 | 
			
		||||
	return msg, nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								microservices/hanlder-impl/cmd/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								microservices/hanlder-impl/cmd/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	"golang.source-fellows.com/samples/httphandler"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	http.ListenAndServe(":8080", &httphandler.MyHandler{})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								microservices/hanlder-impl/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								microservices/hanlder-impl/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
module golang.source-fellows.com/samples/httphandler
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/hanlder-impl/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/hanlder-impl/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
golang.source-fellows.com v0.0.0-20200619133407-79aa8981720c h1:c0BKYhs4PULAm3Hb5f+t9AcmPRScdSAkeuajndyOMLQ=
 | 
			
		||||
							
								
								
									
										9
									
								
								microservices/hanlder-impl/handler.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								microservices/hanlder-impl/handler.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
package httphandler
 | 
			
		||||
 | 
			
		||||
import "net/http"
 | 
			
		||||
 | 
			
		||||
type MyHandler struct{}
 | 
			
		||||
 | 
			
		||||
func (mh *MyHandler) ServeHTTP(writer http.ResponseWriter, req *http.Request) {
 | 
			
		||||
	writer.Write([]byte("Hello World!"))
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								microservices/http-client-circut-breaker/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								microservices/http-client-circut-breaker/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
module golang.source-fellows.com/samples/httpcircuitbreaker
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
 | 
			
		||||
require github.com/sony/gobreaker v0.4.1
 | 
			
		||||
							
								
								
									
										6
									
								
								microservices/http-client-circut-breaker/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								microservices/http-client-circut-breaker/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
			
		||||
github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ=
 | 
			
		||||
github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
 | 
			
		||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
							
								
								
									
										43
									
								
								microservices/http-client-circut-breaker/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								microservices/http-client-circut-breaker/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"log"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	breaker "github.com/sony/gobreaker"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var cb *breaker.CircuitBreaker
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
 | 
			
		||||
	settings := breaker.Settings{Interval: 1 * time.Second, Timeout: 5 * time.Second}
 | 
			
		||||
	cb = breaker.NewCircuitBreaker(settings)
 | 
			
		||||
 | 
			
		||||
	for {
 | 
			
		||||
		bites, err := cb.Execute(func() (interface{}, error) {
 | 
			
		||||
			res, err := http.Get("http://localhost:8080/a")
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
			if res.StatusCode == http.StatusOK {
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
			defer res.Body.Close()
 | 
			
		||||
			bites, _ := ioutil.ReadAll(res.Body)
 | 
			
		||||
			return bites, nil
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Printf("error %v\n", err)
 | 
			
		||||
 | 
			
		||||
		} else {
 | 
			
		||||
			fmt.Println(string(bites.([]byte)))
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								microservices/http-client-config/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								microservices/http-client-config/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	client := http.Client{Transport: &http.Transport{
 | 
			
		||||
		ResponseHeaderTimeout: 1 * time.Millisecond,
 | 
			
		||||
	}}
 | 
			
		||||
	res, err := client.Get("https://google.com")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	defer res.Body.Close()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										71
									
								
								microservices/http-client-ssl-cert/certs/ca/certsdb/01.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								microservices/http-client-ssl-cert/certs/ca/certsdb/01.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
Certificate:
 | 
			
		||||
    Data:
 | 
			
		||||
        Version: 1 (0x0)
 | 
			
		||||
        Serial Number: 1 (0x1)
 | 
			
		||||
        Signature Algorithm: sha1WithRSAEncryption
 | 
			
		||||
        Issuer: C=DE, ST=BW, L=Reutlingen, O=Source Fellows GmbH/emailAddress=webmaster@example.private, CN=test.example.private
 | 
			
		||||
        Validity
 | 
			
		||||
            Not Before: Jul  9 04:15:47 2020 GMT
 | 
			
		||||
            Not After : Jul  9 04:15:47 2021 GMT
 | 
			
		||||
        Subject: C=DE, ST=BW, L=Reutlingen, O=Source Fellows GmbH, CN=test.example.private/emailAddress=user@example.private
 | 
			
		||||
        Subject Public Key Info:
 | 
			
		||||
            Public Key Algorithm: rsaEncryption
 | 
			
		||||
                RSA Public-Key: (2048 bit)
 | 
			
		||||
                Modulus:
 | 
			
		||||
                    00:e3:a9:b6:c5:35:06:6d:12:ee:e7:ee:60:89:49:
 | 
			
		||||
                    2a:ac:b2:be:3d:f7:c5:4d:55:08:fc:80:43:aa:fd:
 | 
			
		||||
                    05:6c:43:94:a5:02:c9:1f:fc:70:c4:44:85:5a:b8:
 | 
			
		||||
                    f9:95:f8:8a:5c:2e:12:55:43:23:f2:d0:34:c3:a4:
 | 
			
		||||
                    41:89:14:a9:d1:19:d4:0d:d0:58:87:38:9f:6c:1d:
 | 
			
		||||
                    89:2d:23:60:8f:9e:af:f4:5a:f0:d0:a4:fd:4a:49:
 | 
			
		||||
                    9b:19:df:97:20:db:80:7b:ee:f2:ba:e7:9a:b4:3c:
 | 
			
		||||
                    48:74:9c:57:61:0b:4e:ee:eb:53:5d:ca:3d:9e:f3:
 | 
			
		||||
                    d2:d5:1a:f7:7a:34:1d:09:73:44:1c:af:3d:31:72:
 | 
			
		||||
                    90:e9:43:0b:b3:c9:30:58:21:df:27:5b:39:42:85:
 | 
			
		||||
                    f1:ec:d9:1c:89:38:64:92:d6:da:f9:22:c1:e9:b5:
 | 
			
		||||
                    22:bf:3a:32:10:f9:e3:e6:b3:73:1d:d2:7e:a9:a6:
 | 
			
		||||
                    27:86:83:8c:7e:9d:4f:39:d0:53:45:0b:f7:89:8b:
 | 
			
		||||
                    f2:8c:43:44:42:a9:4a:81:83:60:bb:1f:63:f5:75:
 | 
			
		||||
                    fa:73:3b:85:c9:62:7d:1d:8a:61:4c:3c:f9:23:a3:
 | 
			
		||||
                    3d:97:78:6f:6d:13:db:88:79:fb:89:0b:3e:a6:50:
 | 
			
		||||
                    b8:72:9a:c8:d3:7b:d2:ec:6c:15:3d:ab:f7:8b:c8:
 | 
			
		||||
                    50:9b
 | 
			
		||||
                Exponent: 65537 (0x10001)
 | 
			
		||||
    Signature Algorithm: sha1WithRSAEncryption
 | 
			
		||||
         95:b9:66:f0:95:05:82:2c:9b:f6:85:ea:68:7c:ae:18:b5:d1:
 | 
			
		||||
         12:10:22:2f:2f:1f:5f:d8:15:b6:b3:87:4a:dc:b1:1c:1d:c3:
 | 
			
		||||
         8c:80:2f:cb:d2:bd:36:35:53:27:20:c0:b8:5f:58:92:8e:60:
 | 
			
		||||
         2a:01:f1:08:38:d0:97:6f:4f:a1:57:17:e7:b9:fc:e1:67:7a:
 | 
			
		||||
         97:1b:b3:e1:36:26:06:b2:32:9d:5a:12:4b:2d:b7:0b:8b:c8:
 | 
			
		||||
         09:bc:5c:b1:8f:f8:42:24:97:10:6d:6a:eb:82:99:0a:bf:e8:
 | 
			
		||||
         fe:9c:1d:52:f2:2d:78:18:a4:9f:33:27:88:54:86:09:11:0e:
 | 
			
		||||
         fd:d5:5c:0d:65:c4:78:bd:cc:2f:34:59:e0:13:e8:02:ed:98:
 | 
			
		||||
         c4:9e:7f:5e:f7:9b:18:d1:c6:76:eb:1b:dc:76:6a:a6:ab:f3:
 | 
			
		||||
         b5:8f:b5:0a:ad:cf:07:d5:cf:6c:69:ae:0c:f5:dc:f2:b2:11:
 | 
			
		||||
         2b:b2:b6:a5:b5:63:6b:1f:0d:7b:cd:07:81:59:40:5e:12:c9:
 | 
			
		||||
         41:73:cf:08:87:3c:ab:38:51:27:c2:ad:c6:57:20:dc:bd:fe:
 | 
			
		||||
         cf:ea:b5:37:29:be:c1:f4:9b:61:ad:a3:f8:5c:d7:7b:65:2e:
 | 
			
		||||
         80:f9:6b:dd:42:a8:62:ae:52:0d:95:f7:67:04:10:b9:97:24:
 | 
			
		||||
         48:33:fb:22
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDnTCCAoUCAQEwDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNVBAYTAkRFMQswCQYD
 | 
			
		||||
VQQIDAJCVzETMBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZl
 | 
			
		||||
bGxvd3MgR21iSDEoMCYGCSqGSIb3DQEJARYZd2VibWFzdGVyQGV4YW1wbGUucHJp
 | 
			
		||||
dmF0ZTEdMBsGA1UEAwwUdGVzdC5leGFtcGxlLnByaXZhdGUwHhcNMjAwNzA5MDQx
 | 
			
		||||
NTQ3WhcNMjEwNzA5MDQxNTQ3WjCBkTELMAkGA1UEBhMCREUxCzAJBgNVBAgMAkJX
 | 
			
		||||
MRMwEQYDVQQHDApSZXV0bGluZ2VuMRwwGgYDVQQKDBNTb3VyY2UgRmVsbG93cyBH
 | 
			
		||||
bWJIMR0wGwYDVQQDDBR0ZXN0LmV4YW1wbGUucHJpdmF0ZTEjMCEGCSqGSIb3DQEJ
 | 
			
		||||
ARYUdXNlckBleGFtcGxlLnByaXZhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
 | 
			
		||||
ggEKAoIBAQDjqbbFNQZtEu7n7mCJSSqssr4998VNVQj8gEOq/QVsQ5SlAskf/HDE
 | 
			
		||||
RIVauPmV+IpcLhJVQyPy0DTDpEGJFKnRGdQN0FiHOJ9sHYktI2CPnq/0WvDQpP1K
 | 
			
		||||
SZsZ35cg24B77vK655q0PEh0nFdhC07u61Ndyj2e89LVGvd6NB0Jc0Qcrz0xcpDp
 | 
			
		||||
QwuzyTBYId8nWzlChfHs2RyJOGSS1tr5IsHptSK/OjIQ+ePms3Md0n6ppieGg4x+
 | 
			
		||||
nU850FNFC/eJi/KMQ0RCqUqBg2C7H2P1dfpzO4XJYn0dimFMPPkjoz2XeG9tE9uI
 | 
			
		||||
efuJCz6mULhymsjTe9LsbBU9q/eLyFCbAgMBAAEwDQYJKoZIhvcNAQEFBQADggEB
 | 
			
		||||
AJW5ZvCVBYIsm/aF6mh8rhi10RIQIi8vH1/YFbazh0rcsRwdw4yAL8vSvTY1Uycg
 | 
			
		||||
wLhfWJKOYCoB8Qg40JdvT6FXF+e5/OFnepcbs+E2JgayMp1aEksttwuLyAm8XLGP
 | 
			
		||||
+EIklxBtauuCmQq/6P6cHVLyLXgYpJ8zJ4hUhgkRDv3VXA1lxHi9zC80WeAT6ALt
 | 
			
		||||
mMSef173mxjRxnbrG9x2aqar87WPtQqtzwfVz2xprgz13PKyESuytqW1Y2sfDXvN
 | 
			
		||||
B4FZQF4SyUFzzwiHPKs4USfCrcZXINy9/s/qtTcpvsH0m2Gto/hc13tlLoD5a91C
 | 
			
		||||
qGKuUg2V92cEELmXJEgz+yI=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/http-client-ssl-cert/certs/ca/index.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/http-client-ssl-cert/certs/ca/index.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
V	210709041547Z		01	unknown	/C=DE/ST=BW/L=Reutlingen/O=Source Fellows GmbH/CN=test.example.private/emailAddress=user@example.private
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
unique_subject = yes
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/http-client-ssl-cert/certs/ca/serial
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/http-client-ssl-cert/certs/ca/serial
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
02
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/http-client-ssl-cert/certs/ca/serial.old
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/http-client-ssl-cert/certs/ca/serial.old
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
01
 | 
			
		||||
							
								
								
									
										21
									
								
								microservices/http-client-ssl-cert/certs/myRoot.crt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								microservices/http-client-ssl-cert/certs/myRoot.crt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDhTCCAm2gAwIBAgIUS7TqIYrkdb2kEmtuawe8h/54VVIwDQYJKoZIhvcNAQEL
 | 
			
		||||
BQAwUjELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0JhV8ODwrwxEzARBgNVBAcMClJl
 | 
			
		||||
dXRsaW5nZW4xHDAaBgNVBAoME1NvdXJjZSBGZWxsb3dzIEdtYkgwHhcNMjAwNzA4
 | 
			
		||||
MDM1ODE4WhcNMzAwNzA2MDM1ODE4WjBSMQswCQYDVQQGEwJERTEQMA4GA1UECAwH
 | 
			
		||||
QmFXw4PCvDETMBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZl
 | 
			
		||||
bGxvd3MgR21iSDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANY+x2Kr
 | 
			
		||||
U49506heEh2s0Q5vTjXUbP5814pHhlJ43X3p7QYMbJ/BBunxLA3a8GvuukgD1Wxr
 | 
			
		||||
0T0uHo5/MLxRh6r1TEy80IApUsyCcAO3jdTGtIr4iebnAOL/Dw0TGWDRyl5SZCwo
 | 
			
		||||
BsVSOfCoJyMs+ygB+BLE+05Dq5FwA3CpxP5r67efBpY2Y9bu1iXAC179rGaVvtLM
 | 
			
		||||
3Zy5G+tQ0aMJYOqVR6tvSrrYg44gJiM270u6Os80V723fPtEUvKbHQOpZoleHWsb
 | 
			
		||||
uZ1FbdQBcnJ2u3bI93ewQAvqQ3tjOqgell5n7kJ1B3Vjk8bVzda1zPKH9vcvF0fc
 | 
			
		||||
gXdPrVOzBCa5Su8CAwEAAaNTMFEwHQYDVR0OBBYEFO3om6AZ9q/+r6kXo7hAhOBD
 | 
			
		||||
SeTbMB8GA1UdIwQYMBaAFO3om6AZ9q/+r6kXo7hAhOBDSeTbMA8GA1UdEwEB/wQF
 | 
			
		||||
MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAMxKFUWYTQz/ACVY8lV18QCGxcvNj3Uz
 | 
			
		||||
ZdtNUEDkxu6yKsl+1otREbuxqnfNjrGLmlLQfU/GlY+PCF85SYm1Ep4yKdZ7J+1c
 | 
			
		||||
MG+PB5NS3cV7BnoJ6WnXk7KJRX+dYpCr+jQmQbtTshk6dM2a6THjyPzKkyDflcfM
 | 
			
		||||
tXQROGDG9O/5DvF8Eqz13Gel5Wukept9mHtDHapU0BooFTXNqh+tPmFU76tKCQZV
 | 
			
		||||
h0Qt9BC8A6bDEaULVlXpvNTuDCrCMGhiYEo2++PD/e5YT1UDVNSokanyFIUoCJAn
 | 
			
		||||
X5u+VjRfaVibiWu8E63qoKv+oXBf9pwlNeE8KBlydzf5OQgx8FEkbfc=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										27
									
								
								microservices/http-client-ssl-cert/certs/myRoot.key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								microservices/http-client-ssl-cert/certs/myRoot.key
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
-----BEGIN RSA PRIVATE KEY-----
 | 
			
		||||
MIIEowIBAAKCAQEA1j7HYqtTj3nTqF4SHazRDm9ONdRs/nzXikeGUnjdfentBgxs
 | 
			
		||||
n8EG6fEsDdrwa+66SAPVbGvRPS4ejn8wvFGHqvVMTLzQgClSzIJwA7eN1Ma0iviJ
 | 
			
		||||
5ucA4v8PDRMZYNHKXlJkLCgGxVI58KgnIyz7KAH4EsT7TkOrkXADcKnE/mvrt58G
 | 
			
		||||
ljZj1u7WJcALXv2sZpW+0szdnLkb61DRowlg6pVHq29KutiDjiAmIzbvS7o6zzRX
 | 
			
		||||
vbd8+0RS8psdA6lmiV4daxu5nUVt1AFycna7dsj3d7BAC+pDe2M6qB6WXmfuQnUH
 | 
			
		||||
dWOTxtXN1rXM8of29y8XR9yBd0+tU7MEJrlK7wIDAQABAoIBAQC0GzaWthybAvly
 | 
			
		||||
ExL7q2pbzipbimbOUbkI4DQFZOIelebSLOOsMSNUy5ATXbi7o4cqPz7N1J2j5v99
 | 
			
		||||
H2OjDI8WovwvjpNhClw23Hi6RzaOZzUjluinGg9exLisbx/oirSrMmxPyp5Wh1d5
 | 
			
		||||
/oJYSdohufYIIVx6YNz8eMQLlEys7BcAs9uDbfrEh2lhSCRd+eVER/p2U+EE3YFe
 | 
			
		||||
OPhE7S7/5fDHidA/vU5YL0zyDcTiqec8lF3b63L39zYsckUjvbJ9gXru+RUFsnYT
 | 
			
		||||
FCz/8axvSyiRj9M162BtrwV1lANgbck+unmk9j63bMaNUFHdlFxovxZDA4C6napJ
 | 
			
		||||
+5dnwduBAoGBAO3UqDRxSWvelTv5vSFWaiJoFKU23PGX46Fsy+b8ttj+8Jz94333
 | 
			
		||||
u+1t5fEnpS46QhQtiVRB42pezBncJ+CdjQ92ikcJZL7o8NYttlmTVg2i/v+dnxmL
 | 
			
		||||
T+Tgl89VUOgfKdlRwpgG64dMT1HFQJlMKkKMzdS6FxQtSclYSq0yYVxhAoGBAOac
 | 
			
		||||
2ijcy0xlhDinsmikxBveaxl8pTeF0jmLlXmNRTuSXkk9tXi5yurV+e4M9oG7pvYU
 | 
			
		||||
4LUthIvtbmPgDhANN5+45bJqNWw3ovaLb0/60XsET4fiR8W0muXMHcBySpFQsvRm
 | 
			
		||||
/daw41S+f4rv2XqyaLLbwmgPiusGlJMDENQQCmlPAoGASPA2Idc4gDeEJx+hTE8X
 | 
			
		||||
P7QR2NVpj0JY0lHuesm4PfZ5znviv+gxH1Db+0iAVRwS1eNdQZTvbNjj2W52YGGR
 | 
			
		||||
OFPPdpe/6PjBm73rNa+E7au2bqhlec0K1JO4myJ8LKQaDocPmdZNd3IExXwsIpeE
 | 
			
		||||
QmKyYXIsz8hP38sPI+zWhSECgYBzJz2Ui/QEGOj2NV7T+/plBCIsnt4NJIh97aJd
 | 
			
		||||
CNraTVNBdUvplbSqoOBlKxnoXCCZ3oD6V1lJWez2eEntX/w3iGdCOOCmQf3g6G1T
 | 
			
		||||
3aW+rL9d1fMK2Q1D1DHDCA8OEuLZQZhdHQTXKyya3vuU1gOL1Ep2FdTDWQzVgAFm
 | 
			
		||||
MwBP5wKBgC7jFtvny07N3NQN/KX758LxN043Awx7DstraYj93jDQ8xT5naiXC/8m
 | 
			
		||||
YoGB9aE6v+uxllBN5QdTSdzL0vpmkLYfnLbKSq54WVOflSAvL6VjxI9o9HMFqGF2
 | 
			
		||||
wcEp3pm+ub20bZBdFoxP15X3IisUGiQcrg/q4ZGHxOvJuzI9q4b0
 | 
			
		||||
-----END RSA PRIVATE KEY-----
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/http-client-ssl-cert/certs/myRoot.srl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/http-client-ssl-cert/certs/myRoot.srl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
73771BE66A4800A9EBDEF9018EBEDCDB7701BCC8
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
authorityKeyIdentifier=keyid,issuer
 | 
			
		||||
basicConstraints=CA:FALSE
 | 
			
		||||
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyCertSign
 | 
			
		||||
subjectAltName = @alt_names
 | 
			
		||||
[alt_names]
 | 
			
		||||
DNS.1 = test.example.private
 | 
			
		||||
@@ -0,0 +1,12 @@
 | 
			
		||||
[req]
 | 
			
		||||
distinguished_name = dn
 | 
			
		||||
default_bits = 2048
 | 
			
		||||
prompt = no
 | 
			
		||||
default_md = sha256
 | 
			
		||||
[dn]
 | 
			
		||||
C=DE
 | 
			
		||||
ST=BW
 | 
			
		||||
L=Reutlingen
 | 
			
		||||
O=Source Fellows GmbH
 | 
			
		||||
emailAddress=webmaster@example.private
 | 
			
		||||
CN = test.example.private
 | 
			
		||||
							
								
								
									
										42
									
								
								microservices/http-client-ssl-cert/certs/server-chain.crt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								microservices/http-client-ssl-cert/certs/server-chain.crt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDhTCCAm2gAwIBAgIUS7TqIYrkdb2kEmtuawe8h/54VVIwDQYJKoZIhvcNAQEL
 | 
			
		||||
BQAwUjELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0JhV8ODwrwxEzARBgNVBAcMClJl
 | 
			
		||||
dXRsaW5nZW4xHDAaBgNVBAoME1NvdXJjZSBGZWxsb3dzIEdtYkgwHhcNMjAwNzA4
 | 
			
		||||
MDM1ODE4WhcNMzAwNzA2MDM1ODE4WjBSMQswCQYDVQQGEwJERTEQMA4GA1UECAwH
 | 
			
		||||
QmFXw4PCvDETMBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZl
 | 
			
		||||
bGxvd3MgR21iSDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANY+x2Kr
 | 
			
		||||
U49506heEh2s0Q5vTjXUbP5814pHhlJ43X3p7QYMbJ/BBunxLA3a8GvuukgD1Wxr
 | 
			
		||||
0T0uHo5/MLxRh6r1TEy80IApUsyCcAO3jdTGtIr4iebnAOL/Dw0TGWDRyl5SZCwo
 | 
			
		||||
BsVSOfCoJyMs+ygB+BLE+05Dq5FwA3CpxP5r67efBpY2Y9bu1iXAC179rGaVvtLM
 | 
			
		||||
3Zy5G+tQ0aMJYOqVR6tvSrrYg44gJiM270u6Os80V723fPtEUvKbHQOpZoleHWsb
 | 
			
		||||
uZ1FbdQBcnJ2u3bI93ewQAvqQ3tjOqgell5n7kJ1B3Vjk8bVzda1zPKH9vcvF0fc
 | 
			
		||||
gXdPrVOzBCa5Su8CAwEAAaNTMFEwHQYDVR0OBBYEFO3om6AZ9q/+r6kXo7hAhOBD
 | 
			
		||||
SeTbMB8GA1UdIwQYMBaAFO3om6AZ9q/+r6kXo7hAhOBDSeTbMA8GA1UdEwEB/wQF
 | 
			
		||||
MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAMxKFUWYTQz/ACVY8lV18QCGxcvNj3Uz
 | 
			
		||||
ZdtNUEDkxu6yKsl+1otREbuxqnfNjrGLmlLQfU/GlY+PCF85SYm1Ep4yKdZ7J+1c
 | 
			
		||||
MG+PB5NS3cV7BnoJ6WnXk7KJRX+dYpCr+jQmQbtTshk6dM2a6THjyPzKkyDflcfM
 | 
			
		||||
tXQROGDG9O/5DvF8Eqz13Gel5Wukept9mHtDHapU0BooFTXNqh+tPmFU76tKCQZV
 | 
			
		||||
h0Qt9BC8A6bDEaULVlXpvNTuDCrCMGhiYEo2++PD/e5YT1UDVNSokanyFIUoCJAn
 | 
			
		||||
X5u+VjRfaVibiWu8E63qoKv+oXBf9pwlNeE8KBlydzf5OQgx8FEkbfc=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDcDCCAlgCFHN3G+ZqSACp6975AY6+3Nt3AbzIMA0GCSqGSIb3DQEBCwUAMFIx
 | 
			
		||||
CzAJBgNVBAYTAkRFMRAwDgYDVQQIDAdCYVfDg8K8MRMwEQYDVQQHDApSZXV0bGlu
 | 
			
		||||
Z2VuMRwwGgYDVQQKDBNTb3VyY2UgRmVsbG93cyBHbWJIMB4XDTIwMDcwOTA0MTM0
 | 
			
		||||
NloXDTMwMDcwNzA0MTM0NlowgZYxCzAJBgNVBAYTAkRFMQswCQYDVQQIDAJCVzET
 | 
			
		||||
MBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZlbGxvd3MgR21i
 | 
			
		||||
SDEoMCYGCSqGSIb3DQEJARYZd2VibWFzdGVyQGV4YW1wbGUucHJpdmF0ZTEdMBsG
 | 
			
		||||
A1UEAwwUdGVzdC5leGFtcGxlLnByaXZhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
 | 
			
		||||
DwAwggEKAoIBAQDEff9ZynNlYbqjTSl77iLejkEwkZuByBwW90CSNcU4GvYnBkiJ
 | 
			
		||||
phUGCV0ifZzEbs+a+AFi9n4AUeA6MUHukEd9ccVSjhg3CQVuPgShyWW1m7XFuiFw
 | 
			
		||||
ms0cePzkNviwDwQvHknS1DaEVDwhjciE0PmWn2CcRVf5ZoNi39EmrYotZBvovxQv
 | 
			
		||||
RoOoP8LXRj4sZDY+5hrwheOoYbAiq0pZcNY7ajHH5CXt/GXKwNucZmBiJSCqusj8
 | 
			
		||||
BQgJ1ob788pu1mqojs8QAhgcRf2jkM7MKTuO5tjOrHfdN2dlcDV9k8O+dg2FwIAF
 | 
			
		||||
db0Nrmy71qHrdz1o7nsx0ktyuQmcHC8GfltNAgMBAAEwDQYJKoZIhvcNAQELBQAD
 | 
			
		||||
ggEBAFC2bJh1AVWBdHA6Ig6GPW0pta14foNIQTPgjZfxRZZBaHS3cTr5Shl5Dhpi
 | 
			
		||||
nU48hoAZNmNaSf7Y47+UhjlQHaRWs1kGyIdYFuyujn9CxGQXmzCG/VvOHh+elwws
 | 
			
		||||
HV7cR6KRMozzOo4JVc61wKgnXOlaLOkY2T26aFhMfpeZhSmZ+vxRIe7uo2UEWLNg
 | 
			
		||||
nRf7DOAcQCUEtyWB8jF+Du5nKg6FnQYn9S9qzwJSCDKvNaw+TaXK1kumcrxuF9s9
 | 
			
		||||
HLxYDAnKfLIqsekoeELrbMU+r0Jhpbr3oHeUa4Mm+v2I2SleWNcYLfQmCyxklJ5r
 | 
			
		||||
LrQLEceRlUveswrFdPYZYVQq2gc=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										21
									
								
								microservices/http-client-ssl-cert/certs/test.example.crt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								microservices/http-client-ssl-cert/certs/test.example.crt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDcDCCAlgCFHN3G+ZqSACp6975AY6+3Nt3AbzIMA0GCSqGSIb3DQEBCwUAMFIx
 | 
			
		||||
CzAJBgNVBAYTAkRFMRAwDgYDVQQIDAdCYVfDg8K8MRMwEQYDVQQHDApSZXV0bGlu
 | 
			
		||||
Z2VuMRwwGgYDVQQKDBNTb3VyY2UgRmVsbG93cyBHbWJIMB4XDTIwMDcwOTA0MTM0
 | 
			
		||||
NloXDTMwMDcwNzA0MTM0NlowgZYxCzAJBgNVBAYTAkRFMQswCQYDVQQIDAJCVzET
 | 
			
		||||
MBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZlbGxvd3MgR21i
 | 
			
		||||
SDEoMCYGCSqGSIb3DQEJARYZd2VibWFzdGVyQGV4YW1wbGUucHJpdmF0ZTEdMBsG
 | 
			
		||||
A1UEAwwUdGVzdC5leGFtcGxlLnByaXZhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
 | 
			
		||||
DwAwggEKAoIBAQDEff9ZynNlYbqjTSl77iLejkEwkZuByBwW90CSNcU4GvYnBkiJ
 | 
			
		||||
phUGCV0ifZzEbs+a+AFi9n4AUeA6MUHukEd9ccVSjhg3CQVuPgShyWW1m7XFuiFw
 | 
			
		||||
ms0cePzkNviwDwQvHknS1DaEVDwhjciE0PmWn2CcRVf5ZoNi39EmrYotZBvovxQv
 | 
			
		||||
RoOoP8LXRj4sZDY+5hrwheOoYbAiq0pZcNY7ajHH5CXt/GXKwNucZmBiJSCqusj8
 | 
			
		||||
BQgJ1ob788pu1mqojs8QAhgcRf2jkM7MKTuO5tjOrHfdN2dlcDV9k8O+dg2FwIAF
 | 
			
		||||
db0Nrmy71qHrdz1o7nsx0ktyuQmcHC8GfltNAgMBAAEwDQYJKoZIhvcNAQELBQAD
 | 
			
		||||
ggEBAFC2bJh1AVWBdHA6Ig6GPW0pta14foNIQTPgjZfxRZZBaHS3cTr5Shl5Dhpi
 | 
			
		||||
nU48hoAZNmNaSf7Y47+UhjlQHaRWs1kGyIdYFuyujn9CxGQXmzCG/VvOHh+elwws
 | 
			
		||||
HV7cR6KRMozzOo4JVc61wKgnXOlaLOkY2T26aFhMfpeZhSmZ+vxRIe7uo2UEWLNg
 | 
			
		||||
nRf7DOAcQCUEtyWB8jF+Du5nKg6FnQYn9S9qzwJSCDKvNaw+TaXK1kumcrxuF9s9
 | 
			
		||||
HLxYDAnKfLIqsekoeELrbMU+r0Jhpbr3oHeUa4Mm+v2I2SleWNcYLfQmCyxklJ5r
 | 
			
		||||
LrQLEceRlUveswrFdPYZYVQq2gc=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										18
									
								
								microservices/http-client-ssl-cert/certs/test.example.csr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								microservices/http-client-ssl-cert/certs/test.example.csr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
-----BEGIN CERTIFICATE REQUEST-----
 | 
			
		||||
MIIC3DCCAcQCAQAwgZYxCzAJBgNVBAYTAkRFMQswCQYDVQQIDAJCVzETMBEGA1UE
 | 
			
		||||
BwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZlbGxvd3MgR21iSDEoMCYG
 | 
			
		||||
CSqGSIb3DQEJARYZd2VibWFzdGVyQGV4YW1wbGUucHJpdmF0ZTEdMBsGA1UEAwwU
 | 
			
		||||
dGVzdC5leGFtcGxlLnByaXZhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
 | 
			
		||||
AoIBAQDEff9ZynNlYbqjTSl77iLejkEwkZuByBwW90CSNcU4GvYnBkiJphUGCV0i
 | 
			
		||||
fZzEbs+a+AFi9n4AUeA6MUHukEd9ccVSjhg3CQVuPgShyWW1m7XFuiFwms0cePzk
 | 
			
		||||
NviwDwQvHknS1DaEVDwhjciE0PmWn2CcRVf5ZoNi39EmrYotZBvovxQvRoOoP8LX
 | 
			
		||||
Rj4sZDY+5hrwheOoYbAiq0pZcNY7ajHH5CXt/GXKwNucZmBiJSCqusj8BQgJ1ob7
 | 
			
		||||
88pu1mqojs8QAhgcRf2jkM7MKTuO5tjOrHfdN2dlcDV9k8O+dg2FwIAFdb0Nrmy7
 | 
			
		||||
1qHrdz1o7nsx0ktyuQmcHC8GfltNAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEA
 | 
			
		||||
l+IOqCs8V602w/GoWdxmLagVGUhSO7DOj6y3mPJirYCWwXCWWePkI9EFnW6ZW3O5
 | 
			
		||||
uNCS2EkmzCOn/Py2M4R6h0+4a+eT+uZVY3gLhD4oN3uYPDoycoMHfkCYXXCNTJG1
 | 
			
		||||
y3rWrvqrg7PjzEk7NOdG5dpGbdok9GVmkaXVjMn64J0PVzzyYZbM+1bxs9sq7Juj
 | 
			
		||||
xzW/ZYioL/R+XBsUFeiwIiro1AlSUO1zClEMR5ePPGoEkbaMu6z1aojF51jEW+3M
 | 
			
		||||
208+uZnRgycuwpcLPdThagXGblAdypYzSB6vTKN9jndsy+/gMgp/K/Ie926trJEZ
 | 
			
		||||
Bmogwc3Y5xduKsqkSxWNEw==
 | 
			
		||||
-----END CERTIFICATE REQUEST-----
 | 
			
		||||
							
								
								
									
										28
									
								
								microservices/http-client-ssl-cert/certs/test.example.key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								microservices/http-client-ssl-cert/certs/test.example.key
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
-----BEGIN PRIVATE KEY-----
 | 
			
		||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEff9ZynNlYbqj
 | 
			
		||||
TSl77iLejkEwkZuByBwW90CSNcU4GvYnBkiJphUGCV0ifZzEbs+a+AFi9n4AUeA6
 | 
			
		||||
MUHukEd9ccVSjhg3CQVuPgShyWW1m7XFuiFwms0cePzkNviwDwQvHknS1DaEVDwh
 | 
			
		||||
jciE0PmWn2CcRVf5ZoNi39EmrYotZBvovxQvRoOoP8LXRj4sZDY+5hrwheOoYbAi
 | 
			
		||||
q0pZcNY7ajHH5CXt/GXKwNucZmBiJSCqusj8BQgJ1ob788pu1mqojs8QAhgcRf2j
 | 
			
		||||
kM7MKTuO5tjOrHfdN2dlcDV9k8O+dg2FwIAFdb0Nrmy71qHrdz1o7nsx0ktyuQmc
 | 
			
		||||
HC8GfltNAgMBAAECggEAD4P/gOCaohvIeBKkvvN772T+Qs6Mn//kL/AQOjtiul5u
 | 
			
		||||
p4A4hB4INPTSVOHkWiKB5DPHMEBUjMPqV84B7cuYyZANS8qKoPXmZuEgzoGvtVp5
 | 
			
		||||
TQa4k0K2BZSMK50noAdfhjT3EV3OfD6GjQO8HLi/rKQjJdPX8Yqlv037Hvm/GnxU
 | 
			
		||||
we4ozN6AbrfUAff5VLU/S8BcKjzlklHHAnRpFzD+Wz4w7woKNDUOjHH1WI6HWoSR
 | 
			
		||||
Pupab/IYhldiXNrB6hCuco+I58DENY1cYQ2X24k/XExRDebpUwZXrGSIxQ7lxCKh
 | 
			
		||||
tc+x/QyJMqu2t4kKSvgBXTeb+g3PfSmfdZnIrAnTQQKBgQDozUzLhCPb3NzeiHG8
 | 
			
		||||
Kd3J14+QttpT2x15qo3hn2jp5pBQmY07s75AiuBX4MKZ01rMFHUd+DpcJ7NOEC5X
 | 
			
		||||
dPJJ4jJEdwee26NSKk+MnWliiQgzThw1rL/9Nq9Wh7bZxMG/R5Q4ED0FRQWCPW3h
 | 
			
		||||
MwAEN6CRALaj94NOJUNEjUzFPQKBgQDYEnJ+vHvhwsQPzQaBez/U4aQ1tA1rh9hB
 | 
			
		||||
iecddIX91OXw8znQvSxZUKvXQov8U+03rGeJXIMRLGT7EsvK4/8czi2r7NgLnUMM
 | 
			
		||||
6AQ3/FXwylNTUvSFLEcypHp4FfwJ1OFHvZWCvT8i+Ni7onvbL5JEKeKoRE/3E91N
 | 
			
		||||
FrfCKlDvUQKBgCwsAB1BhlhKUPI8a3ArdXS93PS1bTmqAq66KM+dopd28v0IFZ81
 | 
			
		||||
XKz8bNLfx6zOSJUecJZuKgygT8pJEbHwc6SHMciB2UVQIW4OrydcGsnifFbXxEx+
 | 
			
		||||
6bLO9HfzqkMprSVxHHOCyUE9tmze4QFw3tjuAR5iR0VXSmfCdEAGm4F1AoGAbf1N
 | 
			
		||||
/UfTRAQSK/zxL95eiu5l2dSS9EcNhac+V9cmEiVa+8HEj4aM2dZf807z1XmfirSf
 | 
			
		||||
a+QE8CwKJ2jVBq3zAmXOB/Ojsp3WMO62nw07bjyAGC1lPZlhkNz7Xr/KMfMEzrEq
 | 
			
		||||
N4hAaHwGT9WReO0JZttvfrpvflXFVGWZGyTRWFECgYEA1UGQB/+I4WanfaP7aTRn
 | 
			
		||||
hVPdf62wePlm2hDCg5DI7OSRxFbIq7aah516QG1w0JiEEnbTEYF0IAMvJT2SuDsS
 | 
			
		||||
45UNe0myHb4jDI6kqPXef4EmJhhO92GsMfgocsl9HYb+ElSiSWWUFj1G3pnBdXyu
 | 
			
		||||
KTrAWWyykNup7GJd4un8dNc=
 | 
			
		||||
-----END PRIVATE KEY-----
 | 
			
		||||
							
								
								
									
										28
									
								
								microservices/http-client-ssl-cert/certs/user-cert.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								microservices/http-client-ssl-cert/certs/user-cert.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
authorityKeyIdentifier=keyid,issuer
 | 
			
		||||
basicConstraints=CA:FALSE
 | 
			
		||||
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
 | 
			
		||||
default_days    = 365
 | 
			
		||||
[ca]
 | 
			
		||||
default_ca = CA_default
 | 
			
		||||
[ CA_default ]
 | 
			
		||||
dir = ca
 | 
			
		||||
certs		= $dir/certsdb
 | 
			
		||||
new_certs_dir	= $certs
 | 
			
		||||
database	= $dir/index.txt
 | 
			
		||||
certificate	= $dir/cacert.pem
 | 
			
		||||
private_key	= $dir/private/cakey.pem
 | 
			
		||||
serial		= $dir/serial
 | 
			
		||||
crldir		= $dir/crl
 | 
			
		||||
crlnumber	= $dir/crlnumber
 | 
			
		||||
crl		= $crldir/crl.pem
 | 
			
		||||
RANDFILE	= $dir/private/.rand
 | 
			
		||||
default_md      = sha1
 | 
			
		||||
policy          = policy_match
 | 
			
		||||
[ policy_match ]
 | 
			
		||||
countryName             = match
 | 
			
		||||
stateOrProvinceName     = match
 | 
			
		||||
localityName            = supplied
 | 
			
		||||
organizationName        = match
 | 
			
		||||
organizationalUnitName  = optional
 | 
			
		||||
commonName              = supplied
 | 
			
		||||
emailAddress            = optional
 | 
			
		||||
@@ -0,0 +1,12 @@
 | 
			
		||||
[req]
 | 
			
		||||
distinguished_name = dn
 | 
			
		||||
default_bits = 2048
 | 
			
		||||
prompt = no
 | 
			
		||||
default_md = sha256
 | 
			
		||||
[dn]
 | 
			
		||||
C=DE
 | 
			
		||||
ST=BW
 | 
			
		||||
L=Reutlingen
 | 
			
		||||
O=Source Fellows GmbH
 | 
			
		||||
emailAddress=user@example.private
 | 
			
		||||
CN = test.example.private
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								microservices/http-client-ssl-cert/certs/user-client.p12
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								microservices/http-client-ssl-cert/certs/user-client.p12
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										71
									
								
								microservices/http-client-ssl-cert/certs/user.crt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								microservices/http-client-ssl-cert/certs/user.crt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
Certificate:
 | 
			
		||||
    Data:
 | 
			
		||||
        Version: 1 (0x0)
 | 
			
		||||
        Serial Number: 1 (0x1)
 | 
			
		||||
        Signature Algorithm: sha1WithRSAEncryption
 | 
			
		||||
        Issuer: C=DE, ST=BW, L=Reutlingen, O=Source Fellows GmbH/emailAddress=webmaster@example.private, CN=test.example.private
 | 
			
		||||
        Validity
 | 
			
		||||
            Not Before: Jul  9 04:15:47 2020 GMT
 | 
			
		||||
            Not After : Jul  9 04:15:47 2021 GMT
 | 
			
		||||
        Subject: C=DE, ST=BW, L=Reutlingen, O=Source Fellows GmbH, CN=test.example.private/emailAddress=user@example.private
 | 
			
		||||
        Subject Public Key Info:
 | 
			
		||||
            Public Key Algorithm: rsaEncryption
 | 
			
		||||
                RSA Public-Key: (2048 bit)
 | 
			
		||||
                Modulus:
 | 
			
		||||
                    00:e3:a9:b6:c5:35:06:6d:12:ee:e7:ee:60:89:49:
 | 
			
		||||
                    2a:ac:b2:be:3d:f7:c5:4d:55:08:fc:80:43:aa:fd:
 | 
			
		||||
                    05:6c:43:94:a5:02:c9:1f:fc:70:c4:44:85:5a:b8:
 | 
			
		||||
                    f9:95:f8:8a:5c:2e:12:55:43:23:f2:d0:34:c3:a4:
 | 
			
		||||
                    41:89:14:a9:d1:19:d4:0d:d0:58:87:38:9f:6c:1d:
 | 
			
		||||
                    89:2d:23:60:8f:9e:af:f4:5a:f0:d0:a4:fd:4a:49:
 | 
			
		||||
                    9b:19:df:97:20:db:80:7b:ee:f2:ba:e7:9a:b4:3c:
 | 
			
		||||
                    48:74:9c:57:61:0b:4e:ee:eb:53:5d:ca:3d:9e:f3:
 | 
			
		||||
                    d2:d5:1a:f7:7a:34:1d:09:73:44:1c:af:3d:31:72:
 | 
			
		||||
                    90:e9:43:0b:b3:c9:30:58:21:df:27:5b:39:42:85:
 | 
			
		||||
                    f1:ec:d9:1c:89:38:64:92:d6:da:f9:22:c1:e9:b5:
 | 
			
		||||
                    22:bf:3a:32:10:f9:e3:e6:b3:73:1d:d2:7e:a9:a6:
 | 
			
		||||
                    27:86:83:8c:7e:9d:4f:39:d0:53:45:0b:f7:89:8b:
 | 
			
		||||
                    f2:8c:43:44:42:a9:4a:81:83:60:bb:1f:63:f5:75:
 | 
			
		||||
                    fa:73:3b:85:c9:62:7d:1d:8a:61:4c:3c:f9:23:a3:
 | 
			
		||||
                    3d:97:78:6f:6d:13:db:88:79:fb:89:0b:3e:a6:50:
 | 
			
		||||
                    b8:72:9a:c8:d3:7b:d2:ec:6c:15:3d:ab:f7:8b:c8:
 | 
			
		||||
                    50:9b
 | 
			
		||||
                Exponent: 65537 (0x10001)
 | 
			
		||||
    Signature Algorithm: sha1WithRSAEncryption
 | 
			
		||||
         95:b9:66:f0:95:05:82:2c:9b:f6:85:ea:68:7c:ae:18:b5:d1:
 | 
			
		||||
         12:10:22:2f:2f:1f:5f:d8:15:b6:b3:87:4a:dc:b1:1c:1d:c3:
 | 
			
		||||
         8c:80:2f:cb:d2:bd:36:35:53:27:20:c0:b8:5f:58:92:8e:60:
 | 
			
		||||
         2a:01:f1:08:38:d0:97:6f:4f:a1:57:17:e7:b9:fc:e1:67:7a:
 | 
			
		||||
         97:1b:b3:e1:36:26:06:b2:32:9d:5a:12:4b:2d:b7:0b:8b:c8:
 | 
			
		||||
         09:bc:5c:b1:8f:f8:42:24:97:10:6d:6a:eb:82:99:0a:bf:e8:
 | 
			
		||||
         fe:9c:1d:52:f2:2d:78:18:a4:9f:33:27:88:54:86:09:11:0e:
 | 
			
		||||
         fd:d5:5c:0d:65:c4:78:bd:cc:2f:34:59:e0:13:e8:02:ed:98:
 | 
			
		||||
         c4:9e:7f:5e:f7:9b:18:d1:c6:76:eb:1b:dc:76:6a:a6:ab:f3:
 | 
			
		||||
         b5:8f:b5:0a:ad:cf:07:d5:cf:6c:69:ae:0c:f5:dc:f2:b2:11:
 | 
			
		||||
         2b:b2:b6:a5:b5:63:6b:1f:0d:7b:cd:07:81:59:40:5e:12:c9:
 | 
			
		||||
         41:73:cf:08:87:3c:ab:38:51:27:c2:ad:c6:57:20:dc:bd:fe:
 | 
			
		||||
         cf:ea:b5:37:29:be:c1:f4:9b:61:ad:a3:f8:5c:d7:7b:65:2e:
 | 
			
		||||
         80:f9:6b:dd:42:a8:62:ae:52:0d:95:f7:67:04:10:b9:97:24:
 | 
			
		||||
         48:33:fb:22
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDnTCCAoUCAQEwDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNVBAYTAkRFMQswCQYD
 | 
			
		||||
VQQIDAJCVzETMBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZl
 | 
			
		||||
bGxvd3MgR21iSDEoMCYGCSqGSIb3DQEJARYZd2VibWFzdGVyQGV4YW1wbGUucHJp
 | 
			
		||||
dmF0ZTEdMBsGA1UEAwwUdGVzdC5leGFtcGxlLnByaXZhdGUwHhcNMjAwNzA5MDQx
 | 
			
		||||
NTQ3WhcNMjEwNzA5MDQxNTQ3WjCBkTELMAkGA1UEBhMCREUxCzAJBgNVBAgMAkJX
 | 
			
		||||
MRMwEQYDVQQHDApSZXV0bGluZ2VuMRwwGgYDVQQKDBNTb3VyY2UgRmVsbG93cyBH
 | 
			
		||||
bWJIMR0wGwYDVQQDDBR0ZXN0LmV4YW1wbGUucHJpdmF0ZTEjMCEGCSqGSIb3DQEJ
 | 
			
		||||
ARYUdXNlckBleGFtcGxlLnByaXZhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
 | 
			
		||||
ggEKAoIBAQDjqbbFNQZtEu7n7mCJSSqssr4998VNVQj8gEOq/QVsQ5SlAskf/HDE
 | 
			
		||||
RIVauPmV+IpcLhJVQyPy0DTDpEGJFKnRGdQN0FiHOJ9sHYktI2CPnq/0WvDQpP1K
 | 
			
		||||
SZsZ35cg24B77vK655q0PEh0nFdhC07u61Ndyj2e89LVGvd6NB0Jc0Qcrz0xcpDp
 | 
			
		||||
QwuzyTBYId8nWzlChfHs2RyJOGSS1tr5IsHptSK/OjIQ+ePms3Md0n6ppieGg4x+
 | 
			
		||||
nU850FNFC/eJi/KMQ0RCqUqBg2C7H2P1dfpzO4XJYn0dimFMPPkjoz2XeG9tE9uI
 | 
			
		||||
efuJCz6mULhymsjTe9LsbBU9q/eLyFCbAgMBAAEwDQYJKoZIhvcNAQEFBQADggEB
 | 
			
		||||
AJW5ZvCVBYIsm/aF6mh8rhi10RIQIi8vH1/YFbazh0rcsRwdw4yAL8vSvTY1Uycg
 | 
			
		||||
wLhfWJKOYCoB8Qg40JdvT6FXF+e5/OFnepcbs+E2JgayMp1aEksttwuLyAm8XLGP
 | 
			
		||||
+EIklxBtauuCmQq/6P6cHVLyLXgYpJ8zJ4hUhgkRDv3VXA1lxHi9zC80WeAT6ALt
 | 
			
		||||
mMSef173mxjRxnbrG9x2aqar87WPtQqtzwfVz2xprgz13PKyESuytqW1Y2sfDXvN
 | 
			
		||||
B4FZQF4SyUFzzwiHPKs4USfCrcZXINy9/s/qtTcpvsH0m2Gto/hc13tlLoD5a91C
 | 
			
		||||
qGKuUg2V92cEELmXJEgz+yI=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										27
									
								
								microservices/http-client-ssl-cert/certs/user.key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								microservices/http-client-ssl-cert/certs/user.key
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
-----BEGIN RSA PRIVATE KEY-----
 | 
			
		||||
MIIEpAIBAAKCAQEA46m2xTUGbRLu5+5giUkqrLK+PffFTVUI/IBDqv0FbEOUpQLJ
 | 
			
		||||
H/xwxESFWrj5lfiKXC4SVUMj8tA0w6RBiRSp0RnUDdBYhzifbB2JLSNgj56v9Frw
 | 
			
		||||
0KT9SkmbGd+XINuAe+7yuueatDxIdJxXYQtO7utTXco9nvPS1Rr3ejQdCXNEHK89
 | 
			
		||||
MXKQ6UMLs8kwWCHfJ1s5QoXx7NkciThkktba+SLB6bUivzoyEPnj5rNzHdJ+qaYn
 | 
			
		||||
hoOMfp1POdBTRQv3iYvyjENEQqlKgYNgux9j9XX6czuFyWJ9HYphTDz5I6M9l3hv
 | 
			
		||||
bRPbiHn7iQs+plC4cprI03vS7GwVPav3i8hQmwIDAQABAoIBAQDjJvzT+7ozroZt
 | 
			
		||||
J61ujXBk69thnQxhwoy604ew3dBBW5S+p+7hWVFyoyOjh5iQCHKU0us740fFB/T9
 | 
			
		||||
l7BEBDgECI9KUS1jjh2TFE1AmmHIKv9JAkvxAg4vxw1YXX0/LYQfJCVQU7JKTzPE
 | 
			
		||||
FhIhI9VYEbkWhanCJWmhc8ylQ8YNG/FU9DYl2qR4GpgEEmyX3EErG/30PBEKRVBl
 | 
			
		||||
k51/cz8vT3fN/bzXjX6+wkG41/+71o879Jh47wI9WY38ZUtqIGWZZaenCNubhHQx
 | 
			
		||||
/5dvFvidwkeueXmwgssBKLdsP1cBxpu/7eN4PsiY+n7RDPVgcnE/PQvTindDOA5w
 | 
			
		||||
vFJ2gZQxAoGBAPgMK2ZV23zMb0JxSfk+pxT2FJZP1MKI0IkdgB6c+rJWEnjV857q
 | 
			
		||||
KeHf37uSEx/4EeAX+E9LFaNgpv48XmJXZtZ9hjOvhvwyDdCEwXsFStH6yulHcxlH
 | 
			
		||||
Ri7iVeEOeBPhRXEhM4jOebw8Kqqp2so170Cc/kDZOx/383/e02FxEAg9AoGBAOr2
 | 
			
		||||
PU+IWNBHZP/1BpekQRZBSpwmlsML5/YnIyXWeYO+d0Kwp3Qi0lKKL/ZI+/bVRGyq
 | 
			
		||||
tEl6fGQzzPoT7XuTS8pey7K1HSyunYdx+vbS6L/ID07mO5oIFjtAbcJQfM7kfqWr
 | 
			
		||||
m662lYvYdCYVPYF0ZfCw20ayb3LQNJTtzVp/5fG3AoGAapyQasOsOs+DYoNe0Anl
 | 
			
		||||
tlSuNIzLXXGAb+6GCqJd/hiQh+8tbrgmmDao6u212p+8zxx+VVZoTnhUTiGUT6BR
 | 
			
		||||
Sw9Yhw6CbhL1bRIiNsXniqjIXcuf5NWFjNErKDgX1DOWrTEf/UUBfa4+iGvI5fCY
 | 
			
		||||
jKTtguHbT7o6plMXd2IpCeECgYEAjqWoW1y/7tMpcmvj8LR7/3LsRRj4droHvd3M
 | 
			
		||||
7O/lHiLIbOirAUsSvaG/tJpivlyECiUpB2MhmgQI8dqfV2L5pIcgzAJBEBuC7/Q3
 | 
			
		||||
FRq+y5A+GvyUOtOmC5r2B/6thz4Z1aL2BYA8Eob7HRPQH4P3T8VPmwBBwUa+ZZxq
 | 
			
		||||
DAOSKskCgYAWCldfjkOgynFHjqQ3HXDtSRLMrgVEj/+Muy6yCu7Lk+lhOsrflK82
 | 
			
		||||
1rMH+O8Z2RxFIA6KuzHZbUXexNzmibsEIWBZU5X14QrLkX1Gq9mCwLv8cSMDqKz+
 | 
			
		||||
qNLcMrEDqSmdPkPppVsJbz44QvFItVWYsPAWS4cyN62X6IJ2lDPjNw==
 | 
			
		||||
-----END RSA PRIVATE KEY-----
 | 
			
		||||
							
								
								
									
										18
									
								
								microservices/http-client-ssl-cert/certs/user.req
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								microservices/http-client-ssl-cert/certs/user.req
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
-----BEGIN CERTIFICATE REQUEST-----
 | 
			
		||||
MIIC1zCCAb8CAQAwgZExCzAJBgNVBAYTAkRFMQswCQYDVQQIDAJCVzETMBEGA1UE
 | 
			
		||||
BwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZlbGxvd3MgR21iSDEjMCEG
 | 
			
		||||
CSqGSIb3DQEJARYUdXNlckBleGFtcGxlLnByaXZhdGUxHTAbBgNVBAMMFHRlc3Qu
 | 
			
		||||
ZXhhbXBsZS5wcml2YXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
 | 
			
		||||
46m2xTUGbRLu5+5giUkqrLK+PffFTVUI/IBDqv0FbEOUpQLJH/xwxESFWrj5lfiK
 | 
			
		||||
XC4SVUMj8tA0w6RBiRSp0RnUDdBYhzifbB2JLSNgj56v9Frw0KT9SkmbGd+XINuA
 | 
			
		||||
e+7yuueatDxIdJxXYQtO7utTXco9nvPS1Rr3ejQdCXNEHK89MXKQ6UMLs8kwWCHf
 | 
			
		||||
J1s5QoXx7NkciThkktba+SLB6bUivzoyEPnj5rNzHdJ+qaYnhoOMfp1POdBTRQv3
 | 
			
		||||
iYvyjENEQqlKgYNgux9j9XX6czuFyWJ9HYphTDz5I6M9l3hvbRPbiHn7iQs+plC4
 | 
			
		||||
cprI03vS7GwVPav3i8hQmwIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAJ2ZHvrq
 | 
			
		||||
QE8yoiOSb+itUtWLo86T+qbSwHLy9Ned0wtu1XiL7ltJATyRwMbv1RduGcfYWBcx
 | 
			
		||||
ZcUAcqYhsuSTM3MPg0MQvAFrLRwonq+TN6zq0K7RvZ5FSCizzcyThJIRcCtUNd0y
 | 
			
		||||
heqknhsvnkIwSQCb4RPF3/57FXct1FNEHEKMtldWEHCkKbJnUtt9Z/4WEkmTCvzi
 | 
			
		||||
EYwcwoK6QsmJOIwQXzOYniaPf2k8oeBLu81sq5GG5vRZvs9dFX6HQmfQ28oKeMCy
 | 
			
		||||
8n6XGHPudNybKBykvYzRKbChVl6LiFdz1f95x5JSh+aJx8Ca8mq5NpFK0TJEzQWv
 | 
			
		||||
NUvFSnG7X4w6JJg=
 | 
			
		||||
-----END CERTIFICATE REQUEST-----
 | 
			
		||||
							
								
								
									
										31
									
								
								microservices/http-client-ssl-cert/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								microservices/http-client-ssl-cert/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"crypto/tls"
 | 
			
		||||
	"crypto/x509"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	certPool := x509.NewCertPool()
 | 
			
		||||
	crt, _ := ioutil.ReadFile("./certs/myRoot.crt")
 | 
			
		||||
	certPool.AppendCertsFromPEM(crt)
 | 
			
		||||
	keyPair, _ := tls.LoadX509KeyPair("./certs/user.crt", "./certs/user.key")
 | 
			
		||||
	clientCerts := []tls.Certificate{keyPair}
 | 
			
		||||
	tlsConfig := &tls.Config{
 | 
			
		||||
		RootCAs:      certPool,
 | 
			
		||||
		Certificates: clientCerts,
 | 
			
		||||
	}
 | 
			
		||||
	transport := &http.Transport{
 | 
			
		||||
		TLSClientConfig: tlsConfig,
 | 
			
		||||
	}
 | 
			
		||||
	client := http.Client{Transport: transport}
 | 
			
		||||
	res, err := client.Get("https://test.example.private:8443")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	bites, err := ioutil.ReadAll(res.Body)
 | 
			
		||||
	fmt.Printf("response is: %v", string(bites))
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								microservices/http-client/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								microservices/http-client/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	res, err := http.Get("https://google.com")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	defer res.Body.Close()
 | 
			
		||||
	fmt.Println(res.Status)
 | 
			
		||||
	bites, _ := ioutil.ReadAll(res.Body)
 | 
			
		||||
	fmt.Println(string(bites))
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								microservices/http-metod-matching/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								microservices/http-metod-matching/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import "net/http"
 | 
			
		||||
 | 
			
		||||
func myHandler(res http.ResponseWriter, req *http.Request) {
 | 
			
		||||
	if req.Method == http.MethodGet {
 | 
			
		||||
		res.Write([]byte("Hello World"))
 | 
			
		||||
	} else {
 | 
			
		||||
		res.WriteHeader(http.StatusMethodNotAllowed)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	http.HandleFunc("/", myHandler)
 | 
			
		||||
	http.ListenAndServe(":8080", nil)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								microservices/http-ratelimit/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								microservices/http-ratelimit/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
module golang.source-fellows.com/samples/ratelimit
 | 
			
		||||
 | 
			
		||||
go 1.14
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/go-redis/redis/v7 v7.4.0
 | 
			
		||||
	github.com/ulule/limiter/v3 v3.5.0
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										65
									
								
								microservices/http-ratelimit/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								microservices/http-ratelimit/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
 | 
			
		||||
github.com/gin-gonic/gin v1.6.2/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
 | 
			
		||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
 | 
			
		||||
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
 | 
			
		||||
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
 | 
			
		||||
github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
 | 
			
		||||
github.com/go-redis/redis/v7 v7.2.0/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg=
 | 
			
		||||
github.com/go-redis/redis/v7 v7.4.0 h1:7obg6wUoj05T0EpY0o8B59S9w5yeMWql7sw2kwNW1x4=
 | 
			
		||||
github.com/go-redis/redis/v7 v7.4.0/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg=
 | 
			
		||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 | 
			
		||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 | 
			
		||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 | 
			
		||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
 | 
			
		||||
github.com/klauspost/compress v1.9.6/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
 | 
			
		||||
github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
 | 
			
		||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 | 
			
		||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 | 
			
		||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 | 
			
		||||
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
 | 
			
		||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
 | 
			
		||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 | 
			
		||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 | 
			
		||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 | 
			
		||||
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 | 
			
		||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 | 
			
		||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 | 
			
		||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
			
		||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
			
		||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 | 
			
		||||
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
 | 
			
		||||
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
 | 
			
		||||
github.com/ulule/limiter/v3 v3.5.0 h1:QRAebbswjlezHIfiSQgM8+jMxaz/zsrxGRuiUJ43MHo=
 | 
			
		||||
github.com/ulule/limiter/v3 v3.5.0/go.mod h1:TgOUQZKZ2KHjemqrC8UHUbKPqpTmSY43/2wbQ7YN1h8=
 | 
			
		||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
 | 
			
		||||
github.com/valyala/fasthttp v1.9.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w=
 | 
			
		||||
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 | 
			
		||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 | 
			
		||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
							
								
								
									
										42
									
								
								microservices/http-ratelimit/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								microservices/http-ratelimit/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	libredis "github.com/go-redis/redis/v7"
 | 
			
		||||
	"github.com/ulule/limiter/v3"
 | 
			
		||||
	"github.com/ulule/limiter/v3/drivers/middleware/stdlib"
 | 
			
		||||
	"github.com/ulule/limiter/v3/drivers/store/redis"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func handleRequest(res http.ResponseWriter, req *http.Request) {
 | 
			
		||||
	res.Write([]byte("Hello World!"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func rateLimitMiddleWare(handler http.HandlerFunc) http.Handler {
 | 
			
		||||
	rate, err := limiter.NewRateFromFormatted("4-S")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	// Redis Client anlegen
 | 
			
		||||
	option, err := libredis.ParseURL("redis://localhost:6379/0")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	client := libredis.NewClient(option)
 | 
			
		||||
	// Store mit Redis konfigurieren
 | 
			
		||||
	store, err := redis.NewStoreWithOptions(client, limiter.StoreOptions{
 | 
			
		||||
		Prefix:   "limiter_http_example",
 | 
			
		||||
		MaxRetry: 3,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	middleware := stdlib.NewMiddleware(limiter.New(store, rate, limiter.WithTrustForwardHeader(true)))
 | 
			
		||||
	return middleware.Handler(handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	http.Handle("/", rateLimitMiddleWare(http.HandlerFunc(handleRequest)))
 | 
			
		||||
	http.ListenAndServe(":8080", nil)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								microservices/http-registration/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								microservices/http-registration/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
module golang.source-fellows.com/samples/httpregistration
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
							
								
								
									
										21
									
								
								microservices/http-registration/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								microservices/http-registration/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import "net/http"
 | 
			
		||||
 | 
			
		||||
type MyHandler struct{}
 | 
			
		||||
 | 
			
		||||
func (mh *MyHandler) ServeHTTP(writer http.ResponseWriter, req *http.Request) {
 | 
			
		||||
	writer.Write([]byte("Hello World (from ServeHTTP)"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func handleHttp(res http.ResponseWriter, req *http.Request) {
 | 
			
		||||
	res.Write([]byte("Hello World (from handleHttp)"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	//Anmeldung der HandlerFunc Implementierung
 | 
			
		||||
	http.HandleFunc("/func", handleHttp)
 | 
			
		||||
	//Anmeldung der Handler Interface Implementierung
 | 
			
		||||
	http.Handle("/handler", &MyHandler{})
 | 
			
		||||
	http.ListenAndServe(":8080", &MyHandler{})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								microservices/http-retry/client/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								microservices/http-retry/client/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
module golang.source-fellows.com/samples/rfc7808/server
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
 | 
			
		||||
require github.com/hashicorp/go-retryablehttp v0.6.6
 | 
			
		||||
							
								
								
									
										8
									
								
								microservices/http-retry/client/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								microservices/http-retry/client/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
 | 
			
		||||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
 | 
			
		||||
github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
 | 
			
		||||
github.com/hashicorp/go-retryablehttp v0.6.6 h1:HJunrbHTDDbBb/ay4kxa1n+dLmttUlnP3V9oNE4hmsM=
 | 
			
		||||
github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
			
		||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
			
		||||
							
								
								
									
										21
									
								
								microservices/http-retry/client/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								microservices/http-retry/client/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	"github.com/hashicorp/go-retryablehttp"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	retryClient := retryablehttp.NewClient()
 | 
			
		||||
	retryClient.RetryMax = 10
 | 
			
		||||
 | 
			
		||||
	standardClient := retryClient.StandardClient()
 | 
			
		||||
 | 
			
		||||
	res, err := standardClient.Get("http://localhost:8080/")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal("could not request")
 | 
			
		||||
	}
 | 
			
		||||
	defer res.Body.Close()
 | 
			
		||||
	log.Println(res.Status)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								microservices/http-retry/server/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								microservices/http-retry/server/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
module golang.source-fellows.com/samples/httpretry/server
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
							
								
								
									
										0
									
								
								microservices/http-retry/server/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								microservices/http-retry/server/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										26
									
								
								microservices/http-retry/server/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								microservices/http-retry/server/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var count int = 0
 | 
			
		||||
 | 
			
		||||
func handleHttp(res http.ResponseWriter, req *http.Request) {
 | 
			
		||||
 | 
			
		||||
	responseStatus := http.StatusInternalServerError
 | 
			
		||||
	if count%4 == 0 {
 | 
			
		||||
		responseStatus = http.StatusOK
 | 
			
		||||
	}
 | 
			
		||||
	fmt.Printf("will return %v\n", responseStatus)
 | 
			
		||||
	res.WriteHeader(responseStatus)
 | 
			
		||||
 | 
			
		||||
	count++
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	http.HandleFunc("/", handleHttp)
 | 
			
		||||
	http.ListenAndServe(":8080", nil)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								microservices/httpsserver/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								microservices/httpsserver/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
Zertifikate erstellen
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
- Root Zertifikat erstellen:
 | 
			
		||||
```
 | 
			
		||||
openssl genrsa -out myRoot.key 2048
 | 
			
		||||
openssl req -x509 -new -nodes -key myRoot.key -sha256 -days 3650 -out myRoot.crt
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Zertifikat für Server erstellen:
 | 
			
		||||
```
 | 
			
		||||
#CSR erstellen
 | 
			
		||||
openssl req -new -sha256 -nodes -out test.example.csr -newkey rsa:2048 -keyout test.example.key -config server-cert.request.conf
 | 
			
		||||
 | 
			
		||||
openssl x509 -req -in test.example.csr -CA myRoot.crt -CAkey myRoot.key -CAcreateserial -extfile test.example.ext.cnf -out test.example.crt -days 3650 -sha256
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										21
									
								
								microservices/httpsserver/certs/myRoot.crt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								microservices/httpsserver/certs/myRoot.crt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDhTCCAm2gAwIBAgIUS7TqIYrkdb2kEmtuawe8h/54VVIwDQYJKoZIhvcNAQEL
 | 
			
		||||
BQAwUjELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0JhV8ODwrwxEzARBgNVBAcMClJl
 | 
			
		||||
dXRsaW5nZW4xHDAaBgNVBAoME1NvdXJjZSBGZWxsb3dzIEdtYkgwHhcNMjAwNzA4
 | 
			
		||||
MDM1ODE4WhcNMzAwNzA2MDM1ODE4WjBSMQswCQYDVQQGEwJERTEQMA4GA1UECAwH
 | 
			
		||||
QmFXw4PCvDETMBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZl
 | 
			
		||||
bGxvd3MgR21iSDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANY+x2Kr
 | 
			
		||||
U49506heEh2s0Q5vTjXUbP5814pHhlJ43X3p7QYMbJ/BBunxLA3a8GvuukgD1Wxr
 | 
			
		||||
0T0uHo5/MLxRh6r1TEy80IApUsyCcAO3jdTGtIr4iebnAOL/Dw0TGWDRyl5SZCwo
 | 
			
		||||
BsVSOfCoJyMs+ygB+BLE+05Dq5FwA3CpxP5r67efBpY2Y9bu1iXAC179rGaVvtLM
 | 
			
		||||
3Zy5G+tQ0aMJYOqVR6tvSrrYg44gJiM270u6Os80V723fPtEUvKbHQOpZoleHWsb
 | 
			
		||||
uZ1FbdQBcnJ2u3bI93ewQAvqQ3tjOqgell5n7kJ1B3Vjk8bVzda1zPKH9vcvF0fc
 | 
			
		||||
gXdPrVOzBCa5Su8CAwEAAaNTMFEwHQYDVR0OBBYEFO3om6AZ9q/+r6kXo7hAhOBD
 | 
			
		||||
SeTbMB8GA1UdIwQYMBaAFO3om6AZ9q/+r6kXo7hAhOBDSeTbMA8GA1UdEwEB/wQF
 | 
			
		||||
MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAMxKFUWYTQz/ACVY8lV18QCGxcvNj3Uz
 | 
			
		||||
ZdtNUEDkxu6yKsl+1otREbuxqnfNjrGLmlLQfU/GlY+PCF85SYm1Ep4yKdZ7J+1c
 | 
			
		||||
MG+PB5NS3cV7BnoJ6WnXk7KJRX+dYpCr+jQmQbtTshk6dM2a6THjyPzKkyDflcfM
 | 
			
		||||
tXQROGDG9O/5DvF8Eqz13Gel5Wukept9mHtDHapU0BooFTXNqh+tPmFU76tKCQZV
 | 
			
		||||
h0Qt9BC8A6bDEaULVlXpvNTuDCrCMGhiYEo2++PD/e5YT1UDVNSokanyFIUoCJAn
 | 
			
		||||
X5u+VjRfaVibiWu8E63qoKv+oXBf9pwlNeE8KBlydzf5OQgx8FEkbfc=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										27
									
								
								microservices/httpsserver/certs/myRoot.key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								microservices/httpsserver/certs/myRoot.key
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
-----BEGIN RSA PRIVATE KEY-----
 | 
			
		||||
MIIEowIBAAKCAQEA1j7HYqtTj3nTqF4SHazRDm9ONdRs/nzXikeGUnjdfentBgxs
 | 
			
		||||
n8EG6fEsDdrwa+66SAPVbGvRPS4ejn8wvFGHqvVMTLzQgClSzIJwA7eN1Ma0iviJ
 | 
			
		||||
5ucA4v8PDRMZYNHKXlJkLCgGxVI58KgnIyz7KAH4EsT7TkOrkXADcKnE/mvrt58G
 | 
			
		||||
ljZj1u7WJcALXv2sZpW+0szdnLkb61DRowlg6pVHq29KutiDjiAmIzbvS7o6zzRX
 | 
			
		||||
vbd8+0RS8psdA6lmiV4daxu5nUVt1AFycna7dsj3d7BAC+pDe2M6qB6WXmfuQnUH
 | 
			
		||||
dWOTxtXN1rXM8of29y8XR9yBd0+tU7MEJrlK7wIDAQABAoIBAQC0GzaWthybAvly
 | 
			
		||||
ExL7q2pbzipbimbOUbkI4DQFZOIelebSLOOsMSNUy5ATXbi7o4cqPz7N1J2j5v99
 | 
			
		||||
H2OjDI8WovwvjpNhClw23Hi6RzaOZzUjluinGg9exLisbx/oirSrMmxPyp5Wh1d5
 | 
			
		||||
/oJYSdohufYIIVx6YNz8eMQLlEys7BcAs9uDbfrEh2lhSCRd+eVER/p2U+EE3YFe
 | 
			
		||||
OPhE7S7/5fDHidA/vU5YL0zyDcTiqec8lF3b63L39zYsckUjvbJ9gXru+RUFsnYT
 | 
			
		||||
FCz/8axvSyiRj9M162BtrwV1lANgbck+unmk9j63bMaNUFHdlFxovxZDA4C6napJ
 | 
			
		||||
+5dnwduBAoGBAO3UqDRxSWvelTv5vSFWaiJoFKU23PGX46Fsy+b8ttj+8Jz94333
 | 
			
		||||
u+1t5fEnpS46QhQtiVRB42pezBncJ+CdjQ92ikcJZL7o8NYttlmTVg2i/v+dnxmL
 | 
			
		||||
T+Tgl89VUOgfKdlRwpgG64dMT1HFQJlMKkKMzdS6FxQtSclYSq0yYVxhAoGBAOac
 | 
			
		||||
2ijcy0xlhDinsmikxBveaxl8pTeF0jmLlXmNRTuSXkk9tXi5yurV+e4M9oG7pvYU
 | 
			
		||||
4LUthIvtbmPgDhANN5+45bJqNWw3ovaLb0/60XsET4fiR8W0muXMHcBySpFQsvRm
 | 
			
		||||
/daw41S+f4rv2XqyaLLbwmgPiusGlJMDENQQCmlPAoGASPA2Idc4gDeEJx+hTE8X
 | 
			
		||||
P7QR2NVpj0JY0lHuesm4PfZ5znviv+gxH1Db+0iAVRwS1eNdQZTvbNjj2W52YGGR
 | 
			
		||||
OFPPdpe/6PjBm73rNa+E7au2bqhlec0K1JO4myJ8LKQaDocPmdZNd3IExXwsIpeE
 | 
			
		||||
QmKyYXIsz8hP38sPI+zWhSECgYBzJz2Ui/QEGOj2NV7T+/plBCIsnt4NJIh97aJd
 | 
			
		||||
CNraTVNBdUvplbSqoOBlKxnoXCCZ3oD6V1lJWez2eEntX/w3iGdCOOCmQf3g6G1T
 | 
			
		||||
3aW+rL9d1fMK2Q1D1DHDCA8OEuLZQZhdHQTXKyya3vuU1gOL1Ep2FdTDWQzVgAFm
 | 
			
		||||
MwBP5wKBgC7jFtvny07N3NQN/KX758LxN043Awx7DstraYj93jDQ8xT5naiXC/8m
 | 
			
		||||
YoGB9aE6v+uxllBN5QdTSdzL0vpmkLYfnLbKSq54WVOflSAvL6VjxI9o9HMFqGF2
 | 
			
		||||
wcEp3pm+ub20bZBdFoxP15X3IisUGiQcrg/q4ZGHxOvJuzI9q4b0
 | 
			
		||||
-----END RSA PRIVATE KEY-----
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/httpsserver/certs/myRoot.srl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/httpsserver/certs/myRoot.srl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
73771BE66A4800A9EBDEF9018EBEDCDB7701BCC7
 | 
			
		||||
							
								
								
									
										6
									
								
								microservices/httpsserver/certs/server-cert.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								microservices/httpsserver/certs/server-cert.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
authorityKeyIdentifier=keyid,issuer
 | 
			
		||||
basicConstraints=CA:FALSE
 | 
			
		||||
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
 | 
			
		||||
subjectAltName = @alt_names
 | 
			
		||||
[alt_names]
 | 
			
		||||
DNS.1 = test.example.private
 | 
			
		||||
							
								
								
									
										12
									
								
								microservices/httpsserver/certs/server-cert.request.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								microservices/httpsserver/certs/server-cert.request.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
[req]
 | 
			
		||||
distinguished_name = dn
 | 
			
		||||
default_bits = 2048
 | 
			
		||||
prompt = no
 | 
			
		||||
default_md = sha256
 | 
			
		||||
[dn]
 | 
			
		||||
C=DE
 | 
			
		||||
ST=BW
 | 
			
		||||
L=Reutlingen
 | 
			
		||||
O=Source Fellows GmbH
 | 
			
		||||
emailAddress=webmaster@example.private
 | 
			
		||||
CN = test.example.private
 | 
			
		||||
							
								
								
									
										23
									
								
								microservices/httpsserver/certs/test.example.crt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								microservices/httpsserver/certs/test.example.crt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIID0zCCArugAwIBAgIUc3cb5mpIAKnr3vkBjr7c23cBvMcwDQYJKoZIhvcNAQEL
 | 
			
		||||
BQAwUjELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0JhV8ODwrwxEzARBgNVBAcMClJl
 | 
			
		||||
dXRsaW5nZW4xHDAaBgNVBAoME1NvdXJjZSBGZWxsb3dzIEdtYkgwHhcNMjAwNzA4
 | 
			
		||||
MDQwNzA0WhcNMzAwNzA2MDQwNzA0WjCBljELMAkGA1UEBhMCREUxCzAJBgNVBAgM
 | 
			
		||||
AkJXMRMwEQYDVQQHDApSZXV0bGluZ2VuMRwwGgYDVQQKDBNTb3VyY2UgRmVsbG93
 | 
			
		||||
cyBHbWJIMSgwJgYJKoZIhvcNAQkBFhl3ZWJtYXN0ZXJAZXhhbXBsZS5wcml2YXRl
 | 
			
		||||
MR0wGwYDVQQDDBR0ZXN0LmV4YW1wbGUucHJpdmF0ZTCCASIwDQYJKoZIhvcNAQEB
 | 
			
		||||
BQADggEPADCCAQoCggEBAK46AzTKQy+/SFeseHbRZbuQZnYznIjiWW57A2dGCSg2
 | 
			
		||||
tuI0811lV5Fx7MMlPEdvHOycwg678hMDvwLv5GvZQg06Pz/rvRxSls6g+S0dPAGE
 | 
			
		||||
NPgNaWDqVa8G58FVdzfe1NFRYLvf/oaFXkE6WJvdgVHuZoNj1IrjqBQMoFRNBeub
 | 
			
		||||
JJHNEJZhX5KdMWqFxJBM4jDzXt1PUIFgeFbtOHnnK6/1ga6yXvtvusS/1tZYZpNp
 | 
			
		||||
1czr5l2cw0VXAcgVDu3qQIOtvYtCkUZO57436UNHKE3uT3gLzzAKRxfrS8LbVG2H
 | 
			
		||||
V82dT5or77bPT2N/GyPJwWgzi50yIfX7vpRmTPHipt0CAwEAAaNcMFowHwYDVR0j
 | 
			
		||||
BBgwFoAU7eiboBn2r/6vqRejuECE4ENJ5NswCQYDVR0TBAIwADALBgNVHQ8EBAMC
 | 
			
		||||
BPAwHwYDVR0RBBgwFoIUdGVzdC5leGFtcGxlLnByaXZhdGUwDQYJKoZIhvcNAQEL
 | 
			
		||||
BQADggEBAFYzh53rfQmEw//rCCeZCjWnyyHuW52DdEYLOJVmT3rkogmIkuFuw7n4
 | 
			
		||||
KNEqw1eDwNCYMFV0uemiWpI80qvtQO8RvaSoWlJs/hTYVI/BIL0xlR8/tOUhshep
 | 
			
		||||
qwAv9LJISd5RcmTJ6Ag3ytR1f6skBuzHdUbODTZBh/L+tM/ypHF+kRnqqjDkEC3r
 | 
			
		||||
kMb81hoU6xALpjwqCzRawbEC3OIw2QQUqVB+zsW45hnhhHKVrLkkyO9djSoReHOy
 | 
			
		||||
lrz7liWcZBlTUjuH+M3WCb8Qr9FD1Cz1f2Ejq0pR6WLTL3c/tcWpZiNUpFYGnscF
 | 
			
		||||
fLyZekegMNG1PqawmEgxBfTAxrONwbo=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										18
									
								
								microservices/httpsserver/certs/test.example.csr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								microservices/httpsserver/certs/test.example.csr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
-----BEGIN CERTIFICATE REQUEST-----
 | 
			
		||||
MIIC3DCCAcQCAQAwgZYxCzAJBgNVBAYTAkRFMQswCQYDVQQIDAJCVzETMBEGA1UE
 | 
			
		||||
BwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZlbGxvd3MgR21iSDEoMCYG
 | 
			
		||||
CSqGSIb3DQEJARYZd2VibWFzdGVyQGV4YW1wbGUucHJpdmF0ZTEdMBsGA1UEAwwU
 | 
			
		||||
dGVzdC5leGFtcGxlLnByaXZhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
 | 
			
		||||
AoIBAQCuOgM0ykMvv0hXrHh20WW7kGZ2M5yI4lluewNnRgkoNrbiNPNdZVeRcezD
 | 
			
		||||
JTxHbxzsnMIOu/ITA78C7+Rr2UINOj8/670cUpbOoPktHTwBhDT4DWlg6lWvBufB
 | 
			
		||||
VXc33tTRUWC73/6GhV5BOlib3YFR7maDY9SK46gUDKBUTQXrmySRzRCWYV+SnTFq
 | 
			
		||||
hcSQTOIw817dT1CBYHhW7Th55yuv9YGusl77b7rEv9bWWGaTadXM6+ZdnMNFVwHI
 | 
			
		||||
FQ7t6kCDrb2LQpFGTue+N+lDRyhN7k94C88wCkcX60vC21Rth1fNnU+aK++2z09j
 | 
			
		||||
fxsjycFoM4udMiH1+76UZkzx4qbdAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEA
 | 
			
		||||
Uz43p2rJGBNxao94QiKV+AsGoHJeogT8ghJqAsyMrpLTs0ETmVEdtmwO+cujpYOd
 | 
			
		||||
bWzJ4WPhemyUbyV4/Igx7U43A0OkAN1xmLHXkuDAZa3Ox43lP1027A193Ik/eAdk
 | 
			
		||||
IhZixL/MJUaub7nTC6uSOq73wo4TcQku9cZUvs9+9t6yOjeMAfNXsyfshXq3hlxd
 | 
			
		||||
aRqbydeSuAn1TYBB8fNWZmLCRaAQ88SHTa3WA3Sapc+JAxbLlz7UWpMcn5Ua4jsD
 | 
			
		||||
vgnhXHhUcaGSB2bGUPxolSj1al7I3q8HrzgCSSHnoBBl3LJ0jpkd56+0VHJ351+4
 | 
			
		||||
cziMZngB/7t5LDDKr7q/Yg==
 | 
			
		||||
-----END CERTIFICATE REQUEST-----
 | 
			
		||||
							
								
								
									
										28
									
								
								microservices/httpsserver/certs/test.example.key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								microservices/httpsserver/certs/test.example.key
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
-----BEGIN PRIVATE KEY-----
 | 
			
		||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCuOgM0ykMvv0hX
 | 
			
		||||
rHh20WW7kGZ2M5yI4lluewNnRgkoNrbiNPNdZVeRcezDJTxHbxzsnMIOu/ITA78C
 | 
			
		||||
7+Rr2UINOj8/670cUpbOoPktHTwBhDT4DWlg6lWvBufBVXc33tTRUWC73/6GhV5B
 | 
			
		||||
Olib3YFR7maDY9SK46gUDKBUTQXrmySRzRCWYV+SnTFqhcSQTOIw817dT1CBYHhW
 | 
			
		||||
7Th55yuv9YGusl77b7rEv9bWWGaTadXM6+ZdnMNFVwHIFQ7t6kCDrb2LQpFGTue+
 | 
			
		||||
N+lDRyhN7k94C88wCkcX60vC21Rth1fNnU+aK++2z09jfxsjycFoM4udMiH1+76U
 | 
			
		||||
Zkzx4qbdAgMBAAECggEBAJOAUc6TnqYBz4FKZwJQ7UwKSHSx5UiOOSCrzInWZVJC
 | 
			
		||||
YDrKkW70qVpdlRDxqULg8x/u5uwKejtW5JPb/QrBeIYyVfIL5qLf2QU+izaClZbD
 | 
			
		||||
EwUedaSzP69arUKk1LXcVViRCNCGJrpElzOp7fKnaSCwMOHz1rFvY5D1z5cPTn/U
 | 
			
		||||
Bsa0r2tGRtEfuUMfceMFaR5BnqJRjP8TuwscoqlOO/bBC1N5lGahJ77dlUB5L1QS
 | 
			
		||||
98Ajwgnsl4QZTqhkoVkAPf3jG5rogF9tJQfBdxHPTUaWawE8GnBcUricq4fjhUA3
 | 
			
		||||
b6zZVyvjI8dPI02UZdkkdTsOpRkXQJ1pz36hypu5GIECgYEA36KivMvoe8fOuzCc
 | 
			
		||||
bnMdT7mCvd77y+m4u0lT8kbCi+HKuGUgYQpCKx9ifIuW9CtdG8YwbWw0Z6QxvfSV
 | 
			
		||||
rTdN/23zDQco5uHe5miLQDVyn3LuAbkYkmKTe3V3Y2XkRL1zptAZ82XBWa3aw6+j
 | 
			
		||||
rIoKRCJ9jLrrGIuFNyU9YevCAPkCgYEAx3DbRXzlEWF3uiYWMpy37DfwgTs6vCjq
 | 
			
		||||
0MAyW03hn7oZ3waghGjuJ5LiYaC/kLk1JUbjCBQEvtgyAVJ6AMatkgWmMlyMjlu8
 | 
			
		||||
480gjLDbiJafvFpaExclK3iZDvhUhBunBje8hIGpWw637MbQB2z7bDiuhTTKp8zb
 | 
			
		||||
pN5/YKwoMgUCgYEA1g9rrEGV/92KkXz/T22akfRlI+9rn4zRSVvwIYj/sTtoesY5
 | 
			
		||||
jwltuq8o60QGMyPK1MoJEsQvCUGOZ1/VYV79ptCMhFzlFtL/NBa/q689T0iIb1fI
 | 
			
		||||
IF6BAvy2UYt3SyD4saSiImu0/m0+aG8XwRDEsOE+wdUtMWpjEhzwO2maYqkCgYA6
 | 
			
		||||
M2f5tkHOuafLzdOKf4t4xrZLsDIquLIVqxDG7kpaZ1+nYvKy0UA2kjm4DcX5gOLO
 | 
			
		||||
dwpH0De2TbcCBcSOt2vtgfKHHdTysjjELZdDF1VpXbNNrvw8N/Pj5LSd1sArMTqj
 | 
			
		||||
qN49uOzoIrpvwXDxyc7xPPVI8Cf3oeOzEC8R0guE1QKBgG1kyv5p2CfE26aL3+eO
 | 
			
		||||
o9VAY36Fr/oM74wBySC9J22G9a0oNegW3eEuGvnGMRc4fkSoIlJjqA53on0OcG3h
 | 
			
		||||
Eua1qz02v6LpIKs3RvmlY/PFfv3TosVjQQXnEH8XRBVqPIVI9xwP1GbjWYE2kKMq
 | 
			
		||||
VM8bquSy+WIsUuD0eFhnx+rC
 | 
			
		||||
-----END PRIVATE KEY-----
 | 
			
		||||
							
								
								
									
										5
									
								
								microservices/httpsserver/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								microservices/httpsserver/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
module golang.source-fellows.com/samples/https/server
 | 
			
		||||
 | 
			
		||||
go 1.14
 | 
			
		||||
 | 
			
		||||
require golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
 | 
			
		||||
							
								
								
									
										9
									
								
								microservices/httpsserver/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								microservices/httpsserver/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
							
								
								
									
										19
									
								
								microservices/httpsserver/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								microservices/httpsserver/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
 | 
			
		||||
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
		fmt.Fprintln(w, "Hello World")
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	certFile := "./certs/test.example.crt"
 | 
			
		||||
	keyFile := "./certs/test.example.key"
 | 
			
		||||
 | 
			
		||||
	http.ListenAndServeTLS(":8443", certFile, keyFile, nil)
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										46
									
								
								microservices/httpsservercert/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								microservices/httpsservercert/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
Zertifikate erstellen
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
AUSFÜHRE IM cert VERZEICHNIS
 | 
			
		||||
 | 
			
		||||
- Root Zertifikat erstellen:
 | 
			
		||||
```
 | 
			
		||||
openssl genrsa -out myRoot.key 2048
 | 
			
		||||
openssl req -x509 -new -nodes -key myRoot.key -sha256 -days 3650 -out myRoot.crt
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Zertifikat für Server erstellen:
 | 
			
		||||
```
 | 
			
		||||
#CSR erstellen
 | 
			
		||||
openssl req -new -sha256 -nodes -out test.example.csr -newkey rsa:2048 -keyout test.example.key -config server-cert.request.conf
 | 
			
		||||
 | 
			
		||||
openssl x509 -req -in test.example.csr -CA myRoot.crt -CAkey myRoot.key -CAcreateserial -out test.example.crt -days 3650 -sha256
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
-CA anlegen
 | 
			
		||||
```
 | 
			
		||||
mkdir -p ca/certsdb
 | 
			
		||||
touch ca/index.txt
 | 
			
		||||
touch ca/index.txt.attr
 | 
			
		||||
echo '01' > ca/serial
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Client-Zertifikat erstellen
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
openssl genrsa -des3 -out user.key # key is 1234
 | 
			
		||||
openssl req -new -key user.key -out user.req -config user-cert.request.conf
 | 
			
		||||
openssl ca -cert test.example.crt -keyfile test.example.key -out user.crt -in user.req -config user-cert.conf
 | 
			
		||||
openssl pkcs12 -export -in user.crt -inkey user.key -out user-client.p12
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Chain
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
cat
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Curl
 | 
			
		||||
```
 | 
			
		||||
curl --cacert ./certs/myRoot.crt --cert ./certs/user.crt --key ./certs/user.key -v https://test.example.private:8443
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										71
									
								
								microservices/httpsservercert/certs/ca/certsdb/01.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								microservices/httpsservercert/certs/ca/certsdb/01.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
Certificate:
 | 
			
		||||
    Data:
 | 
			
		||||
        Version: 1 (0x0)
 | 
			
		||||
        Serial Number: 1 (0x1)
 | 
			
		||||
        Signature Algorithm: sha1WithRSAEncryption
 | 
			
		||||
        Issuer: C=DE, ST=BW, L=Reutlingen, O=Source Fellows GmbH/emailAddress=webmaster@example.private, CN=test.example.private
 | 
			
		||||
        Validity
 | 
			
		||||
            Not Before: Jul  9 04:15:47 2020 GMT
 | 
			
		||||
            Not After : Jul  9 04:15:47 2021 GMT
 | 
			
		||||
        Subject: C=DE, ST=BW, L=Reutlingen, O=Source Fellows GmbH, CN=test.example.private/emailAddress=user@example.private
 | 
			
		||||
        Subject Public Key Info:
 | 
			
		||||
            Public Key Algorithm: rsaEncryption
 | 
			
		||||
                RSA Public-Key: (2048 bit)
 | 
			
		||||
                Modulus:
 | 
			
		||||
                    00:e3:a9:b6:c5:35:06:6d:12:ee:e7:ee:60:89:49:
 | 
			
		||||
                    2a:ac:b2:be:3d:f7:c5:4d:55:08:fc:80:43:aa:fd:
 | 
			
		||||
                    05:6c:43:94:a5:02:c9:1f:fc:70:c4:44:85:5a:b8:
 | 
			
		||||
                    f9:95:f8:8a:5c:2e:12:55:43:23:f2:d0:34:c3:a4:
 | 
			
		||||
                    41:89:14:a9:d1:19:d4:0d:d0:58:87:38:9f:6c:1d:
 | 
			
		||||
                    89:2d:23:60:8f:9e:af:f4:5a:f0:d0:a4:fd:4a:49:
 | 
			
		||||
                    9b:19:df:97:20:db:80:7b:ee:f2:ba:e7:9a:b4:3c:
 | 
			
		||||
                    48:74:9c:57:61:0b:4e:ee:eb:53:5d:ca:3d:9e:f3:
 | 
			
		||||
                    d2:d5:1a:f7:7a:34:1d:09:73:44:1c:af:3d:31:72:
 | 
			
		||||
                    90:e9:43:0b:b3:c9:30:58:21:df:27:5b:39:42:85:
 | 
			
		||||
                    f1:ec:d9:1c:89:38:64:92:d6:da:f9:22:c1:e9:b5:
 | 
			
		||||
                    22:bf:3a:32:10:f9:e3:e6:b3:73:1d:d2:7e:a9:a6:
 | 
			
		||||
                    27:86:83:8c:7e:9d:4f:39:d0:53:45:0b:f7:89:8b:
 | 
			
		||||
                    f2:8c:43:44:42:a9:4a:81:83:60:bb:1f:63:f5:75:
 | 
			
		||||
                    fa:73:3b:85:c9:62:7d:1d:8a:61:4c:3c:f9:23:a3:
 | 
			
		||||
                    3d:97:78:6f:6d:13:db:88:79:fb:89:0b:3e:a6:50:
 | 
			
		||||
                    b8:72:9a:c8:d3:7b:d2:ec:6c:15:3d:ab:f7:8b:c8:
 | 
			
		||||
                    50:9b
 | 
			
		||||
                Exponent: 65537 (0x10001)
 | 
			
		||||
    Signature Algorithm: sha1WithRSAEncryption
 | 
			
		||||
         95:b9:66:f0:95:05:82:2c:9b:f6:85:ea:68:7c:ae:18:b5:d1:
 | 
			
		||||
         12:10:22:2f:2f:1f:5f:d8:15:b6:b3:87:4a:dc:b1:1c:1d:c3:
 | 
			
		||||
         8c:80:2f:cb:d2:bd:36:35:53:27:20:c0:b8:5f:58:92:8e:60:
 | 
			
		||||
         2a:01:f1:08:38:d0:97:6f:4f:a1:57:17:e7:b9:fc:e1:67:7a:
 | 
			
		||||
         97:1b:b3:e1:36:26:06:b2:32:9d:5a:12:4b:2d:b7:0b:8b:c8:
 | 
			
		||||
         09:bc:5c:b1:8f:f8:42:24:97:10:6d:6a:eb:82:99:0a:bf:e8:
 | 
			
		||||
         fe:9c:1d:52:f2:2d:78:18:a4:9f:33:27:88:54:86:09:11:0e:
 | 
			
		||||
         fd:d5:5c:0d:65:c4:78:bd:cc:2f:34:59:e0:13:e8:02:ed:98:
 | 
			
		||||
         c4:9e:7f:5e:f7:9b:18:d1:c6:76:eb:1b:dc:76:6a:a6:ab:f3:
 | 
			
		||||
         b5:8f:b5:0a:ad:cf:07:d5:cf:6c:69:ae:0c:f5:dc:f2:b2:11:
 | 
			
		||||
         2b:b2:b6:a5:b5:63:6b:1f:0d:7b:cd:07:81:59:40:5e:12:c9:
 | 
			
		||||
         41:73:cf:08:87:3c:ab:38:51:27:c2:ad:c6:57:20:dc:bd:fe:
 | 
			
		||||
         cf:ea:b5:37:29:be:c1:f4:9b:61:ad:a3:f8:5c:d7:7b:65:2e:
 | 
			
		||||
         80:f9:6b:dd:42:a8:62:ae:52:0d:95:f7:67:04:10:b9:97:24:
 | 
			
		||||
         48:33:fb:22
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDnTCCAoUCAQEwDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNVBAYTAkRFMQswCQYD
 | 
			
		||||
VQQIDAJCVzETMBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZl
 | 
			
		||||
bGxvd3MgR21iSDEoMCYGCSqGSIb3DQEJARYZd2VibWFzdGVyQGV4YW1wbGUucHJp
 | 
			
		||||
dmF0ZTEdMBsGA1UEAwwUdGVzdC5leGFtcGxlLnByaXZhdGUwHhcNMjAwNzA5MDQx
 | 
			
		||||
NTQ3WhcNMjEwNzA5MDQxNTQ3WjCBkTELMAkGA1UEBhMCREUxCzAJBgNVBAgMAkJX
 | 
			
		||||
MRMwEQYDVQQHDApSZXV0bGluZ2VuMRwwGgYDVQQKDBNTb3VyY2UgRmVsbG93cyBH
 | 
			
		||||
bWJIMR0wGwYDVQQDDBR0ZXN0LmV4YW1wbGUucHJpdmF0ZTEjMCEGCSqGSIb3DQEJ
 | 
			
		||||
ARYUdXNlckBleGFtcGxlLnByaXZhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
 | 
			
		||||
ggEKAoIBAQDjqbbFNQZtEu7n7mCJSSqssr4998VNVQj8gEOq/QVsQ5SlAskf/HDE
 | 
			
		||||
RIVauPmV+IpcLhJVQyPy0DTDpEGJFKnRGdQN0FiHOJ9sHYktI2CPnq/0WvDQpP1K
 | 
			
		||||
SZsZ35cg24B77vK655q0PEh0nFdhC07u61Ndyj2e89LVGvd6NB0Jc0Qcrz0xcpDp
 | 
			
		||||
QwuzyTBYId8nWzlChfHs2RyJOGSS1tr5IsHptSK/OjIQ+ePms3Md0n6ppieGg4x+
 | 
			
		||||
nU850FNFC/eJi/KMQ0RCqUqBg2C7H2P1dfpzO4XJYn0dimFMPPkjoz2XeG9tE9uI
 | 
			
		||||
efuJCz6mULhymsjTe9LsbBU9q/eLyFCbAgMBAAEwDQYJKoZIhvcNAQEFBQADggEB
 | 
			
		||||
AJW5ZvCVBYIsm/aF6mh8rhi10RIQIi8vH1/YFbazh0rcsRwdw4yAL8vSvTY1Uycg
 | 
			
		||||
wLhfWJKOYCoB8Qg40JdvT6FXF+e5/OFnepcbs+E2JgayMp1aEksttwuLyAm8XLGP
 | 
			
		||||
+EIklxBtauuCmQq/6P6cHVLyLXgYpJ8zJ4hUhgkRDv3VXA1lxHi9zC80WeAT6ALt
 | 
			
		||||
mMSef173mxjRxnbrG9x2aqar87WPtQqtzwfVz2xprgz13PKyESuytqW1Y2sfDXvN
 | 
			
		||||
B4FZQF4SyUFzzwiHPKs4USfCrcZXINy9/s/qtTcpvsH0m2Gto/hc13tlLoD5a91C
 | 
			
		||||
qGKuUg2V92cEELmXJEgz+yI=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/httpsservercert/certs/ca/index.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/httpsservercert/certs/ca/index.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
V	210709041547Z		01	unknown	/C=DE/ST=BW/L=Reutlingen/O=Source Fellows GmbH/CN=test.example.private/emailAddress=user@example.private
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/httpsservercert/certs/ca/index.txt.attr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/httpsservercert/certs/ca/index.txt.attr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
unique_subject = yes
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/httpsservercert/certs/ca/serial
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/httpsservercert/certs/ca/serial
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
02
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/httpsservercert/certs/ca/serial.old
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/httpsservercert/certs/ca/serial.old
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
01
 | 
			
		||||
							
								
								
									
										21
									
								
								microservices/httpsservercert/certs/myRoot.crt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								microservices/httpsservercert/certs/myRoot.crt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDhTCCAm2gAwIBAgIUS7TqIYrkdb2kEmtuawe8h/54VVIwDQYJKoZIhvcNAQEL
 | 
			
		||||
BQAwUjELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0JhV8ODwrwxEzARBgNVBAcMClJl
 | 
			
		||||
dXRsaW5nZW4xHDAaBgNVBAoME1NvdXJjZSBGZWxsb3dzIEdtYkgwHhcNMjAwNzA4
 | 
			
		||||
MDM1ODE4WhcNMzAwNzA2MDM1ODE4WjBSMQswCQYDVQQGEwJERTEQMA4GA1UECAwH
 | 
			
		||||
QmFXw4PCvDETMBEGA1UEBwwKUmV1dGxpbmdlbjEcMBoGA1UECgwTU291cmNlIEZl
 | 
			
		||||
bGxvd3MgR21iSDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANY+x2Kr
 | 
			
		||||
U49506heEh2s0Q5vTjXUbP5814pHhlJ43X3p7QYMbJ/BBunxLA3a8GvuukgD1Wxr
 | 
			
		||||
0T0uHo5/MLxRh6r1TEy80IApUsyCcAO3jdTGtIr4iebnAOL/Dw0TGWDRyl5SZCwo
 | 
			
		||||
BsVSOfCoJyMs+ygB+BLE+05Dq5FwA3CpxP5r67efBpY2Y9bu1iXAC179rGaVvtLM
 | 
			
		||||
3Zy5G+tQ0aMJYOqVR6tvSrrYg44gJiM270u6Os80V723fPtEUvKbHQOpZoleHWsb
 | 
			
		||||
uZ1FbdQBcnJ2u3bI93ewQAvqQ3tjOqgell5n7kJ1B3Vjk8bVzda1zPKH9vcvF0fc
 | 
			
		||||
gXdPrVOzBCa5Su8CAwEAAaNTMFEwHQYDVR0OBBYEFO3om6AZ9q/+r6kXo7hAhOBD
 | 
			
		||||
SeTbMB8GA1UdIwQYMBaAFO3om6AZ9q/+r6kXo7hAhOBDSeTbMA8GA1UdEwEB/wQF
 | 
			
		||||
MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAMxKFUWYTQz/ACVY8lV18QCGxcvNj3Uz
 | 
			
		||||
ZdtNUEDkxu6yKsl+1otREbuxqnfNjrGLmlLQfU/GlY+PCF85SYm1Ep4yKdZ7J+1c
 | 
			
		||||
MG+PB5NS3cV7BnoJ6WnXk7KJRX+dYpCr+jQmQbtTshk6dM2a6THjyPzKkyDflcfM
 | 
			
		||||
tXQROGDG9O/5DvF8Eqz13Gel5Wukept9mHtDHapU0BooFTXNqh+tPmFU76tKCQZV
 | 
			
		||||
h0Qt9BC8A6bDEaULVlXpvNTuDCrCMGhiYEo2++PD/e5YT1UDVNSokanyFIUoCJAn
 | 
			
		||||
X5u+VjRfaVibiWu8E63qoKv+oXBf9pwlNeE8KBlydzf5OQgx8FEkbfc=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										27
									
								
								microservices/httpsservercert/certs/myRoot.key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								microservices/httpsservercert/certs/myRoot.key
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
-----BEGIN RSA PRIVATE KEY-----
 | 
			
		||||
MIIEowIBAAKCAQEA1j7HYqtTj3nTqF4SHazRDm9ONdRs/nzXikeGUnjdfentBgxs
 | 
			
		||||
n8EG6fEsDdrwa+66SAPVbGvRPS4ejn8wvFGHqvVMTLzQgClSzIJwA7eN1Ma0iviJ
 | 
			
		||||
5ucA4v8PDRMZYNHKXlJkLCgGxVI58KgnIyz7KAH4EsT7TkOrkXADcKnE/mvrt58G
 | 
			
		||||
ljZj1u7WJcALXv2sZpW+0szdnLkb61DRowlg6pVHq29KutiDjiAmIzbvS7o6zzRX
 | 
			
		||||
vbd8+0RS8psdA6lmiV4daxu5nUVt1AFycna7dsj3d7BAC+pDe2M6qB6WXmfuQnUH
 | 
			
		||||
dWOTxtXN1rXM8of29y8XR9yBd0+tU7MEJrlK7wIDAQABAoIBAQC0GzaWthybAvly
 | 
			
		||||
ExL7q2pbzipbimbOUbkI4DQFZOIelebSLOOsMSNUy5ATXbi7o4cqPz7N1J2j5v99
 | 
			
		||||
H2OjDI8WovwvjpNhClw23Hi6RzaOZzUjluinGg9exLisbx/oirSrMmxPyp5Wh1d5
 | 
			
		||||
/oJYSdohufYIIVx6YNz8eMQLlEys7BcAs9uDbfrEh2lhSCRd+eVER/p2U+EE3YFe
 | 
			
		||||
OPhE7S7/5fDHidA/vU5YL0zyDcTiqec8lF3b63L39zYsckUjvbJ9gXru+RUFsnYT
 | 
			
		||||
FCz/8axvSyiRj9M162BtrwV1lANgbck+unmk9j63bMaNUFHdlFxovxZDA4C6napJ
 | 
			
		||||
+5dnwduBAoGBAO3UqDRxSWvelTv5vSFWaiJoFKU23PGX46Fsy+b8ttj+8Jz94333
 | 
			
		||||
u+1t5fEnpS46QhQtiVRB42pezBncJ+CdjQ92ikcJZL7o8NYttlmTVg2i/v+dnxmL
 | 
			
		||||
T+Tgl89VUOgfKdlRwpgG64dMT1HFQJlMKkKMzdS6FxQtSclYSq0yYVxhAoGBAOac
 | 
			
		||||
2ijcy0xlhDinsmikxBveaxl8pTeF0jmLlXmNRTuSXkk9tXi5yurV+e4M9oG7pvYU
 | 
			
		||||
4LUthIvtbmPgDhANN5+45bJqNWw3ovaLb0/60XsET4fiR8W0muXMHcBySpFQsvRm
 | 
			
		||||
/daw41S+f4rv2XqyaLLbwmgPiusGlJMDENQQCmlPAoGASPA2Idc4gDeEJx+hTE8X
 | 
			
		||||
P7QR2NVpj0JY0lHuesm4PfZ5znviv+gxH1Db+0iAVRwS1eNdQZTvbNjj2W52YGGR
 | 
			
		||||
OFPPdpe/6PjBm73rNa+E7au2bqhlec0K1JO4myJ8LKQaDocPmdZNd3IExXwsIpeE
 | 
			
		||||
QmKyYXIsz8hP38sPI+zWhSECgYBzJz2Ui/QEGOj2NV7T+/plBCIsnt4NJIh97aJd
 | 
			
		||||
CNraTVNBdUvplbSqoOBlKxnoXCCZ3oD6V1lJWez2eEntX/w3iGdCOOCmQf3g6G1T
 | 
			
		||||
3aW+rL9d1fMK2Q1D1DHDCA8OEuLZQZhdHQTXKyya3vuU1gOL1Ep2FdTDWQzVgAFm
 | 
			
		||||
MwBP5wKBgC7jFtvny07N3NQN/KX758LxN043Awx7DstraYj93jDQ8xT5naiXC/8m
 | 
			
		||||
YoGB9aE6v+uxllBN5QdTSdzL0vpmkLYfnLbKSq54WVOflSAvL6VjxI9o9HMFqGF2
 | 
			
		||||
wcEp3pm+ub20bZBdFoxP15X3IisUGiQcrg/q4ZGHxOvJuzI9q4b0
 | 
			
		||||
-----END RSA PRIVATE KEY-----
 | 
			
		||||
							
								
								
									
										1
									
								
								microservices/httpsservercert/certs/myRoot.srl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								microservices/httpsservercert/certs/myRoot.srl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
73771BE66A4800A9EBDEF9018EBEDCDB7701BCC8
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user