Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
0911a73085
|
|||
1de73e99e3
|
|||
b44af0658a
|
|||
309b4c6ba8
|
|||
a921fb6a0f
|
16
auth.py
16
auth.py
@ -30,12 +30,19 @@ class PasswordMismatchException(Exception):
|
|||||||
|
|
||||||
UserEntry = namedtuple('UserEntry', ['id', 'login', 'expiry', 'claims'])
|
UserEntry = namedtuple('UserEntry', ['id', 'login', 'expiry', 'claims'])
|
||||||
|
|
||||||
|
|
||||||
JWT_PRIV_KEY = ""
|
JWT_PRIV_KEY = ""
|
||||||
with open('/opt/app/config/authservice.key', 'r') as f:
|
try:
|
||||||
|
JWT_PRIV_KEY = os.environ["JWT_PRIV_KEY"]
|
||||||
|
except KeyError:
|
||||||
|
with open('/opt/app/config/authservice.key', 'r') as f:
|
||||||
JWT_PRIV_KEY = f.read()
|
JWT_PRIV_KEY = f.read()
|
||||||
|
|
||||||
JWT_PUB_KEY = ""
|
JWT_PUB_KEY = ""
|
||||||
with open('/opt/app/config/authservice.pub', 'r') as f:
|
try:
|
||||||
|
JWT_PUB_KEY = os.environ["JWT_PUB_KEY"]
|
||||||
|
except KeyError:
|
||||||
|
with open('/opt/app/config/authservice.pub', 'r') as f:
|
||||||
JWT_PUB_KEY = f.read()
|
JWT_PUB_KEY = f.read()
|
||||||
|
|
||||||
|
|
||||||
@ -129,5 +136,10 @@ def generateToken(**args):
|
|||||||
print("ERROR: generateToken: unspecific exception: {}".format(str(e)))
|
print("ERROR: generateToken: unspecific exception: {}".format(str(e)))
|
||||||
raise werkzeug.exceptions.Unauthorized()
|
raise werkzeug.exceptions.Unauthorized()
|
||||||
|
|
||||||
|
def generateTokenFromEnc(**args):
|
||||||
|
cryptContent = args["body"]
|
||||||
|
raise werkzeug.exceptions.NotImplemented("Stay tuned, will be added soon")
|
||||||
|
return str(cryptContent)
|
||||||
|
|
||||||
def getPubKey():
|
def getPubKey():
|
||||||
return JWT_PUB_KEY
|
return JWT_PUB_KEY
|
||||||
|
19
openapi.yaml
19
openapi.yaml
@ -7,7 +7,7 @@ paths:
|
|||||||
/auth:
|
/auth:
|
||||||
post:
|
post:
|
||||||
tags: [ "JWT" ]
|
tags: [ "JWT" ]
|
||||||
summary: Return JWT token
|
summary: Accept login and password, return JWT token
|
||||||
operationId: auth.generateToken
|
operationId: auth.generateToken
|
||||||
requestBody:
|
requestBody:
|
||||||
content:
|
content:
|
||||||
@ -21,6 +21,23 @@ paths:
|
|||||||
'text/plain':
|
'text/plain':
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
|
/authe:
|
||||||
|
post:
|
||||||
|
tags: [ "JWT" ]
|
||||||
|
summary: Accept encrypted set of credentials, return JWT token
|
||||||
|
operationId: auth.generateTokenFromEnc
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
'text/plain':
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: JWT token
|
||||||
|
content:
|
||||||
|
'text/plain':
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
/secret:
|
/secret:
|
||||||
get:
|
get:
|
||||||
tags: [ "JWT" ]
|
tags: [ "JWT" ]
|
||||||
|
9
testjwe.py
Normal file
9
testjwe.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
from jose import jwe
|
||||||
|
|
||||||
|
|
||||||
|
JWT_PUB_KEY = os.environ["JWT_PUB_KEY"]
|
||||||
|
|
||||||
|
plainText = "BlaBlaBla123"
|
||||||
|
cryptText = jwe.encrypt(plainText, JWT_PUB_KEY, "A256GCM", "RSA-OAEP")
|
||||||
|
|
||||||
|
print(cryptText)
|
Reference in New Issue
Block a user