summaryrefslogtreecommitdiffstats
path: root/bridge
diff options
context:
space:
mode:
authorWim <wim@42.be>2017-06-06 00:05:32 +0200
committerWim <wim@42.be>2017-06-06 00:05:32 +0200
commitad3cb0386b72a7f9d46b4a2068ff947570fa67ff (patch)
tree6bd08153f66d1e46765177842e36e58edac7573a /bridge
parent3a183cb218c6812964a70d2e75884ad7071d9c0c (diff)
downloadmatterbridge-msglm-ad3cb0386b72a7f9d46b4a2068ff947570fa67ff.tar.gz
matterbridge-msglm-ad3cb0386b72a7f9d46b4a2068ff947570fa67ff.tar.bz2
matterbridge-msglm-ad3cb0386b72a7f9d46b4a2068ff947570fa67ff.zip
Add token authentication (api)
Diffstat (limited to 'bridge')
-rw-r--r--bridge/api/api.go6
-rw-r--r--bridge/config/config.go2
2 files changed, 7 insertions, 1 deletions
diff --git a/bridge/api/api.go b/bridge/api/api.go
index d53fc3b4..48715c50 100644
--- a/bridge/api/api.go
+++ b/bridge/api/api.go
@@ -4,6 +4,7 @@ import (
"github.com/42wim/matterbridge/bridge/config"
log "github.com/Sirupsen/logrus"
"github.com/labstack/echo"
+ "github.com/labstack/echo/middleware"
"github.com/zfjagann/golang-ring"
"net/http"
"sync"
@@ -38,6 +39,11 @@ func New(cfg config.Protocol, account string, c chan config.Message) *Api {
b.Config = &cfg
b.Account = account
b.Remote = c
+ if b.Config.Token != "" {
+ e.Use(middleware.KeyAuth(func(key string, c echo.Context) (bool, error) {
+ return key == b.Config.Token, nil
+ }))
+ }
e.GET("/api/messages", b.handleMessages)
e.POST("/api/message", b.handlePostMessage)
go func() {
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 172cb109..4b3c4250 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -67,7 +67,7 @@ type Protocol struct {
ShowJoinPart bool // all protocols
SkipTLSVerify bool // IRC, mattermost
Team string // mattermost
- Token string // gitter, slack, discord
+ Token string // gitter, slack, discord, api
URL string // mattermost, slack, matrix
UseAPI bool // mattermost, slack
UseSASL bool // IRC