1
0
mirror of https://github.com/Luzifer/vault-otp-ui.git synced 2024-09-16 15:48:32 +00:00

Add basic web application manifest

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2017-06-15 00:04:59 +02:00
parent c20c1ec5be
commit 9680058e76
Signed by: luzifer
GPG Key ID: DC2729FDD34BE99E
8 changed files with 180 additions and 9 deletions

123
assets.go

File diff suppressed because one or more lines are too long

View File

@ -7,6 +7,8 @@
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Vault OTP-UI</title>
<link rel="manifest" href="static/manifest.json">
<!-- Bootstrap -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap-theme.min.css"
integrity="sha256-ZT4HPpdCOt2lvDkXokHuhJfdOKSPFLzeAJik5U/Q+l4=" crossorigin="anonymous" />

35
main.go
View File

@ -1,6 +1,6 @@
package main
//go:generate go-bindata -pkg $GOPACKAGE -o assets.go index.html application.js
//go:generate go-bindata -pkg $GOPACKAGE -o assets.go index.html application.js static
import (
"bytes"
@ -9,13 +9,16 @@ import (
"errors"
"fmt"
"io"
"mime"
"net/http"
"os"
"strings"
"time"
"github.com/Luzifer/rconfig"
log "github.com/Sirupsen/logrus"
"github.com/alecthomas/template"
"github.com/gorilla/mux"
"github.com/gorilla/securecookie"
"github.com/gorilla/sessions"
"github.com/tdewolff/minify"
@ -89,11 +92,13 @@ func main() {
log.Fatalf("Unable to parse CLI parameters: %s", err)
}
http.HandleFunc("/oauth2", handleOAuthCallback)
http.HandleFunc("/application.js", handleApplicationJS)
http.HandleFunc("/codes.json", handleCodesJSON)
http.HandleFunc("/", handleIndexPage)
log.Fatalf("HTTP server exitted: %s", http.ListenAndServe(cfg.Listen, nil))
r := mux.NewRouter()
r.HandleFunc("/oauth2", handleOAuthCallback)
r.HandleFunc("/application.js", handleApplicationJS)
r.HandleFunc("/codes.json", handleCodesJSON)
r.PathPrefix("/static").HandlerFunc(handleStatics)
r.HandleFunc("/", handleIndexPage)
log.Fatalf("HTTP server exitted: %s", http.ListenAndServe(cfg.Listen, r))
}
func getFileContentFallback(filename string) (io.Reader, error) {
@ -207,3 +212,21 @@ func handleCodesJSON(res http.ResponseWriter, r *http.Request) {
res.Header().Set("Cache-Control", "no-cache")
json.NewEncoder(res).Encode(result)
}
func handleStatics(res http.ResponseWriter, r *http.Request) {
req := strings.TrimLeft(r.URL.Path, "/")
ext := req[strings.LastIndex(req, "."):len(req)]
t := mime.TypeByExtension(ext)
b, err := Asset(req)
if err != nil {
log.WithFields(log.Fields{
"file": req,
}).Errorf("Static file not found")
http.Error(res, "I don't have that.", http.StatusNotFound)
return
}
res.Header().Set("Content-Type", t)
res.Write(b)
}

29
static/manifest.json Normal file
View File

@ -0,0 +1,29 @@
{
"display": "standalone",
"icons": [
{
"sizes": "128x128",
"src": "padlock_128.png",
"type": "image/png"
},
{
"sizes": "144x144",
"src": "padlock_144.png",
"type": "image/png"
},
{
"sizes": "152x152",
"src": "padlock_152.png",
"type": "image/png"
},
{
"sizes": "192x192",
"src": "padlock_192.png",
"type": "image/png"
}
],
"name": "Vault OTP-UI",
"orientation": "portrait",
"short_name": "Vault OTP-UI",
"start_url": "/"
}

BIN
static/padlock_128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
static/padlock_144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
static/padlock_152.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
static/padlock_192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB