5
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2024-12-25 07:15:43 +00:00

Add support for outgoing webhook token

This commit is contained in:
Wim 2015-10-24 18:01:15 +02:00
parent 25d72a7e31
commit 6feccd4c6c
5 changed files with 17 additions and 2 deletions

View File

@ -57,6 +57,9 @@ url="http://mattermost.yourdomain.com/hooks/incomingwebhookkey"
#port the bridge webserver will listen on
port=9999
showjoinpart=true #show irc users joining and parting
#the token you get from the outgoing webhook in mattermost. If empty no token check will be done.
token=yourtokenfrommattermost
```
### mattermost

View File

@ -19,6 +19,7 @@ type Config struct {
URL string
Port int
ShowJoinPart bool
Token string
}
}

View File

@ -10,3 +10,4 @@ channel="#matterbridge"
url="http://yourdomain/hooks/yourhookkey"
port=9999
showjoinpart=true
#token=yourtokenfrommattermost

View File

@ -19,7 +19,8 @@ type Bridge struct {
func NewBridge(name string, config *Config) *Bridge {
b := &Bridge{}
b.Config = config
b.m = matterhook.New(b.Config.Mattermost.URL, matterhook.Config{Port: b.Config.Mattermost.Port})
b.m = matterhook.New(b.Config.Mattermost.URL,
matterhook.Config{Port: b.Config.Mattermost.Port, Token: b.Config.Mattermost.Token})
b.i = b.createIRC(name)
go b.handleMatter()
return b

View File

@ -45,8 +45,10 @@ type Client struct {
Config
}
// Config for client.
type Config struct {
Port int
Port int // Port to listen on.
Token string // Only allow this token from Mattermost. (Allow everything when empty)
}
// New Mattermost client.
@ -96,6 +98,13 @@ func (c *Client) ServeHTTP(w http.ResponseWriter, r *http.Request) {
http.NotFound(w, r)
return
}
if c.Token != "" {
if msg.Token != c.Token {
log.Println("invalid token " + msg.Token + " from " + r.RemoteAddr)
http.NotFound(w, r)
return
}
}
c.In <- msg
}