feat:kintone APIのパスワードの暗号化対応
This commit is contained in:
@@ -38,4 +38,4 @@ class KINTONE_ENV:
|
|||||||
self.DOMAIN_ID=domain.id
|
self.DOMAIN_ID=domain.id
|
||||||
self.BASE_URL = domain.url
|
self.BASE_URL = domain.url
|
||||||
self.KINTONE_USER = domain.kintoneuser
|
self.KINTONE_USER = domain.kintoneuser
|
||||||
self.API_V1_AUTH_VALUE = base64.b64encode(bytes(f"{domain.kintoneuser}:{domain.kintonepwd}","utf-8"))
|
self.API_V1_AUTH_VALUE = base64.b64encode(bytes(f"{domain.kintoneuser}:{domain.decrypt_kintonepwd()}","utf-8"))
|
||||||
@@ -266,19 +266,18 @@ def get_domain(db: Session, userid: str):
|
|||||||
domains = db.query(models.Domain).join(models.UserDomain,models.UserDomain.domainid == models.Domain.id ).filter(models.UserDomain.userid == userid).all()
|
domains = db.query(models.Domain).join(models.UserDomain,models.UserDomain.domainid == models.Domain.id ).filter(models.UserDomain.userid == userid).all()
|
||||||
if not domains:
|
if not domains:
|
||||||
raise HTTPException(status_code=404, detail="Data not found")
|
raise HTTPException(status_code=404, detail="Data not found")
|
||||||
for domain in domains:
|
# for domain in domains:
|
||||||
decrypted_pwd = chacha20Decrypt(domain.kintonepwd)
|
# decrypted_pwd = chacha20Decrypt(domain.kintonepwd)
|
||||||
domain.kintonepwd = decrypted_pwd
|
# domain.kintonepwd = decrypted_pwd
|
||||||
|
|
||||||
return domains
|
return domains
|
||||||
|
|
||||||
def get_domains(db: Session,tenantid:str):
|
def get_domains(db: Session,tenantid:str):
|
||||||
domains = db.query(models.Domain).filter(models.Domain.tenantid == tenantid ).all()
|
domains = db.query(models.Domain).filter(models.Domain.tenantid == tenantid ).all()
|
||||||
if not domains:
|
if not domains:
|
||||||
raise HTTPException(status_code=404, detail="Data not found")
|
raise HTTPException(status_code=404, detail="Data not found")
|
||||||
for domain in domains:
|
# for domain in domains:
|
||||||
decrypted_pwd = chacha20Decrypt(domain.kintonepwd)
|
# decrypted_pwd = chacha20Decrypt(domain.kintonepwd)
|
||||||
domain.kintonepwd = decrypted_pwd
|
# domain.kintonepwd = decrypted_pwd
|
||||||
return domains
|
return domains
|
||||||
|
|
||||||
def get_events(db: Session):
|
def get_events(db: Session):
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ from sqlalchemy import Boolean, Column, Integer, String, DateTime,ForeignKey
|
|||||||
from sqlalchemy.ext.declarative import as_declarative
|
from sqlalchemy.ext.declarative import as_declarative
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
from app.core.security import chacha20Decrypt
|
||||||
|
|
||||||
@as_declarative()
|
@as_declarative()
|
||||||
class Base:
|
class Base:
|
||||||
id = Column(Integer, primary_key=True, index=True)
|
id = Column(Integer, primary_key=True, index=True)
|
||||||
@@ -68,6 +70,9 @@ class Domain(Base):
|
|||||||
url = Column(String(200), nullable=False)
|
url = Column(String(200), nullable=False)
|
||||||
kintoneuser = Column(String(100), nullable=False)
|
kintoneuser = Column(String(100), nullable=False)
|
||||||
kintonepwd = Column(String(100), nullable=False)
|
kintonepwd = Column(String(100), nullable=False)
|
||||||
|
def decrypt_kintonepwd(self):
|
||||||
|
decrypted_pwd = chacha20Decrypt(self.kintonepwd)
|
||||||
|
return decrypted_pwd
|
||||||
|
|
||||||
|
|
||||||
class UserDomain(Base):
|
class UserDomain(Base):
|
||||||
|
|||||||
@@ -131,7 +131,6 @@ class Domain(Base):
|
|||||||
url: str
|
url: str
|
||||||
kintoneuser: str
|
kintoneuser: str
|
||||||
kintonepwd: str
|
kintonepwd: str
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
orm_mode = True
|
orm_mode = True
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user