Browse Source

Parse JWT keys correctly

This now parses into rsa.{Public|Private}Key structs, as required by
current jwt library.
pull/4/head
Matt Baer 6 years ago
parent
commit
06d7569fa3
1 changed files with 16 additions and 5 deletions
  1. +16
    -5
      session.go

+ 16
- 5
session.go View File

@@ -1,6 +1,7 @@
package htmlhouse

import (
"crypto/rsa"
"fmt"
jwt "github.com/dgrijalva/jwt-go"
"github.com/juju/errgo"
@@ -30,22 +31,32 @@ func newSessionInfo(houseID string) *sessionInfo {
func newSessionManager(cfg *config) (sessionManager, error) {
mgr := &defaultSessionManager{}

var err error

mgr.signKey, err = ioutil.ReadFile(cfg.PrivateKey)
// Read and parse private key
signBytes, err := ioutil.ReadFile(cfg.PrivateKey)
if err != nil {
return mgr, errgo.Mask(err)
}
mgr.signKey, err = jwt.ParseRSAPrivateKeyFromPEM(signBytes)
if err != nil {
return mgr, errgo.Mask(err)
}

mgr.verifyKey, err = ioutil.ReadFile(cfg.PublicKey)
// Read and parse public key
verifyBytes, err := ioutil.ReadFile(cfg.PublicKey)
if err != nil {
return mgr, errgo.Mask(err)
}
mgr.verifyKey, err = jwt.ParseRSAPublicKeyFromPEM(verifyBytes)
if err != nil {
return mgr, errgo.Mask(err)
}

return mgr, nil
}

type defaultSessionManager struct {
verifyKey, signKey []byte
verifyKey *rsa.PublicKey
signKey *rsa.PrivateKey
}

func (m *defaultSessionManager) readToken(r *http.Request) (string, error) {


Loading…
Cancel
Save