mirror of
https://github.com/1f349/mjwt.git
synced 2024-12-22 07:24:05 +00:00
Add test for NewMJwtVerifierFromFile
This commit is contained in:
parent
8806e30591
commit
9ea1842360
@ -12,7 +12,7 @@ import (
|
|||||||
type testClaims struct{ TestValue string }
|
type testClaims struct{ TestValue string }
|
||||||
|
|
||||||
func (t testClaims) Valid() error {
|
func (t testClaims) Valid() error {
|
||||||
if t.TestValue != "hello" {
|
if t.TestValue != "hello" && t.TestValue != "world" {
|
||||||
return fmt.Errorf("TestValue should be hello")
|
return fmt.Errorf("TestValue should be hello")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -5,13 +5,10 @@ import (
|
|||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"encoding/pem"
|
"encoding/pem"
|
||||||
"github.com/golang-jwt/jwt/v4"
|
"github.com/golang-jwt/jwt/v4"
|
||||||
"github.com/pkg/errors"
|
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ErrCannotGenerateMJwtToken = errors.New("cannot generate mjwt token with verifier")
|
// defaultMJwtVerifier implements Verifier and uses a rsa.PublicKey to validate
|
||||||
|
|
||||||
// defaultMJwtVerifier implements Verifier and uses an rsa.PublicKey to validate
|
|
||||||
// MJWT tokens
|
// MJWT tokens
|
||||||
type defaultMJwtVerifier struct {
|
type defaultMJwtVerifier struct {
|
||||||
pub *rsa.PublicKey
|
pub *rsa.PublicKey
|
||||||
|
33
verifier_test.go
Normal file
33
verifier_test.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package mjwt
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/rand"
|
||||||
|
"crypto/rsa"
|
||||||
|
"crypto/x509"
|
||||||
|
"encoding/pem"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestNewMJwtVerifierFromFile(t *testing.T) {
|
||||||
|
key, err := rsa.GenerateKey(rand.Reader, 2048)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
s := NewMJwtSigner("mjwt.test", key)
|
||||||
|
token, err := s.GenerateJwt("1", "test", 10*time.Minute, testClaims{TestValue: "world"})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
b := pem.EncodeToMemory(&pem.Block{Type: "RSA PUBLIC KEY", Bytes: x509.MarshalPKCS1PublicKey(&key.PublicKey)})
|
||||||
|
temp, err := os.CreateTemp("", "this-is-a-test-file.pem")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
_, err = temp.Write(b)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
file, err := NewMJwtVerifierFromFile(temp.Name())
|
||||||
|
assert.NoError(t, err)
|
||||||
|
_, _, err = ExtractClaims[testClaims](file, token)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
err = os.Remove(temp.Name())
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user