Skip to content

Commit

Permalink
updated to coraza v1
Browse files Browse the repository at this point in the history
  • Loading branch information
jptosso committed Jul 29, 2021
1 parent d3491c0 commit b3ed3b9
Show file tree
Hide file tree
Showing 8 changed files with 194 additions and 44 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
caddy-build/
caddy-dist/
dist/
libinjection/
134 changes: 134 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
before:
hooks:
# The build is done in this particular way to build Caddy in a designated directory named in .gitignore.
# This is so we can run goreleaser on tag without Git complaining of being dirty. The main.go in cmd/caddy directory
# cannot be built within that directory due to changes necessary for the build causing Git to be dirty, which
# subsequently causes gorleaser to refuse running.
- mkdir -p caddy-build
- cp builder/main.go caddy-build/main.go
- cp ./go.mod caddy-build/go.mod
- sed -i 's|github.com/jptosso/coraza-caddy/v1|coraza|g' ./caddy-build/go.mod
# GoReleaser doesn't seem to offer {{.Tag}} at this stage, so we have to embed it into the env
# so we run: TAG=$(git describe --abbrev=0) goreleaser release --rm-dist --skip-publish --skip-validate
- go mod edit -require=github.com/jptosso/coraza-caddy@latest ./caddy-build/go.mod
#{{.Env.TAG}} ./caddy-build/go.mod
# as of Go 1.16, `go` commands no longer automatically change go.{mod,sum}. We now have to explicitly
# run `go mod tidy`. The `/bin/sh -c '...'` is because goreleaser can't find cd in PATH without shell invocation.
- /bin/sh -c 'cd ./caddy-build && go mod tidy'
- git clone --depth 1 https://github.com/caddyserver/dist caddy-dist
- go mod download
- git clone --depth 1 https://github.com/libinjection/libinjection

builds:
- env:
- CGO_ENABLED=1
- GO111MODULE=on
main: main.go
dir: ./caddy-build
binary: caddy
goos:
#- darwin
- linux
#- windows
- freebsd
goarch:
- amd64
#- arm
#- arm64
#- s390x
#- ppc64le
goarm:
- 5
- 6
- 7
ignore:
- goos: darwin
goarch: arm
- goos: darwin
goarch: ppc64le
- goos: darwin
goarch: s390x
- goos: windows
goarch: ppc64le
- goos: windows
goarch: s390x
- goos: freebsd
goarch: ppc64le
- goos: freebsd
goarch: s390x
- goos: freebsd
goarch: arm
goarm: 5
flags:
- -trimpath
ldflags:
- -s -w

archives:
- format_overrides:
- goos: windows
format: zip
replacements:
darwin: mac
checksum:
algorithm: sha512

nfpms:
- id: default
package_name: coraza-caddy

vendor: Coraza Technologies
homepage: https://github.com/jptosso/coraza-waf
maintainer: Juan Pablo Tosso <[email protected]>
description: |
Caddy - Powerful, enterprise-ready, open source web server with automatic HTTPS written in Go. This build was integrated with Coraza Web Application Firewall
license: Apache 2.0

formats:
- deb
# - rpm

bindir: /usr/bin
contents:
- src: ./caddy-dist/init/caddy.service
dst: /lib/systemd/system/caddy.service

- src: ./caddy-dist/init/caddy-api.service
dst: /lib/systemd/system/caddy-api.service

- src: ./caddy-dist/welcome/index.html
dst: /usr/share/caddy/index.html

- src: ./caddy-dist/scripts/completions/bash-completion
dst: /etc/bash_completion.d/caddy

- src: ./libinjection/libinjection.so
dst: /usr/local/lib/libinjection.so

- src: ./caddy-dist/config/Caddyfile
dst: /etc/caddy/Caddyfile
type: config

scripts:
postinstall: ./caddy-dist/scripts/postinstall.sh
preremove: ./caddy-dist/scripts/preremove.sh
postremove: ./caddy-dist/scripts/postremove.sh


release:
github:
owner: jptosso
name: coraza-docker
draft: true
prerelease: auto

changelog:
sort: asc
filters:
exclude:
- '^chore:'
- '^ci:'
- '^docs?:'
- '^readme:'
- '^tests?:'
- '^\w+\s+' # a hack to remove commit messages without colons thus don't correspond to a package
2 changes: 0 additions & 2 deletions Makefile

This file was deleted.

12 changes: 12 additions & 0 deletions builder/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package main

import (
caddycmd "github.com/caddyserver/caddy/v2/cmd"

_ "github.com/caddyserver/caddy/v2/modules/standard"
_ "github.com/jptosso/coraza-caddy"
)

func main() {
caddycmd.Main()
}
9 changes: 5 additions & 4 deletions coraza.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ package coraza

import (
"fmt"
"net/http"
"io"
"net/http"

"github.com/caddyserver/caddy/v2"
"github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"
"github.com/caddyserver/caddy/v2/caddyconfig/httpcaddyfile"
"github.com/caddyserver/caddy/v2/modules/caddyhttp"
"github.com/jptosso/coraza-waf/pkg/engine"
"github.com/jptosso/coraza-waf/pkg/seclang"
engine "github.com/jptosso/coraza-waf"
"github.com/jptosso/coraza-waf/seclang"
"go.uber.org/zap"
)

Expand All @@ -19,7 +20,7 @@ func init() {
}

type Middleware struct {
Include string `json:"include"`
Include string `json:"include"`
Directives string `json:"directives"`
TemplateForbidden string `json:"template_forbidden"`

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.16

require (
github.com/caddyserver/caddy/v2 v2.4.3
github.com/jptosso/coraza-waf v0.0.0-20210622223802-db7e4bddd2fe
github.com/jptosso/coraza-waf v1.0.0-beta.1
go.uber.org/zap v1.17.0
)
Loading

0 comments on commit b3ed3b9

Please sign in to comment.