Skip to content
Snippets Groups Projects
download.go 746 B
Newer Older
  • Learn to ignore specific revisions
  • package main
    
    import (
    	"encoding/hex"
    	"github.com/patrickmn/go-cache"
    	"math/rand"
    	"net/http"
    	"strings"
    	"time"
    )
    
    func handleRdpDownload(w http.ResponseWriter, r *http.Request) {
    	seed := make([]byte, 16)
    	rand.Read(seed)
    	fn := hex.EncodeToString(seed) + ".rdp"
    
    	rand.Read(seed)
    	token := hex.EncodeToString(seed)
    
    	tokens.Set(token, token, cache.DefaultExpiration)
    
    	w.Header().Set("Content-Disposition", "attachment; filename="+fn)
    	w.Header().Set("Content-Type", "application/x-rdp")
    	http.ServeContent(w, r, fn, time.Now(), strings.NewReader(
    		"full address:s:localhost\r\n"+
    			"gatewayhostname:s:localhost\r\n"+
    			"gatewaycredentialssource:i:5\r\n"+
    			"gatewayusagemethod:i:1\r\n"+
    			"gatewayaccesstoken:s:" + token + "\r\n"))
    }