Skip to content

Commit

Permalink
Speedup aaguid finding
Browse files Browse the repository at this point in the history
  • Loading branch information
dqj1998 committed Oct 1, 2023
1 parent f4261a6 commit 88b9e93
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 8 deletions.
2 changes: 1 addition & 1 deletion domain.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"domains":[{"domain":"portal.mac-air-m2.dqj-home.com","reg_page":"/dev.html","uv_auth":"preferred","uv_reg":"preferred"},{"domain":"sample.mac-air-m2.dqj-home.com","reg_page":"/devices.html","uv_auth":"preferred","uv_reg":"required","device_limit":"2","registration_session_timeout":"999"},{"domain":"rp01.abc.com","enterprise":true,"enterprise_aaguids":["aaaaaaaaaaa888888888999999999000","ee882879721c491397753dfcce97072a"],"device_bind_key":true,"user_session_active_timeout":600,"user_session_hard_timeout":43200},{"domain":"rp02.def.com","reg_page":"/devices.html","passkey_sync":"true","device_bind_key":"false","enterprise":"false","status":"OK"},{"domain":"rp03.abc.com","enterprise":false},{"domain":"www.test1.com"},{"domain":"www.test2.com","process_timeout":"666","user_session_active_timeout":"999","user_session_hard_timeout":"88888","device_bind_key":"true","enterprise":"true","enterprise_aaguids":["1aaaaaaaaaa888888888999999999000","2aaaaaaaaaa888888888999999999000"]},{"domain":"www.test3.com","process_timeout":"678"},{"domain":"www.hot01.com"},{"domain":"www.gmail.test1.com","enterprise":"true","enterprise_aaguids":["2aaaaaaaaaa888888888999999999001"]},{"domain":"sss.ggg.com","reg_page":"/kk/rrr199.html","process_timeout":"666","user_session_active_timeout":"999","registration_session_timeout":"988"},{"domain":"test1.abc.com","reg_page":"/dvc.jsp","device_bind_key":"true"},{"domain":"aaa.bb.com","reg_page":"/ddd.html","uv_auth":"preferred","uv_reg":"preferred"},{"domain":"999.ttt.com","reg_page":"/dd.html","uv_auth":"preferred","uv_reg":"preferred"},{"domain":"hotmail.abc.com","reg_page":"/dev.html","uv_auth":"preferred","uv_reg":"preferred","process_timeout":"660"},{"domain":"marketing.abc.com","reg_page":"/dev.jsp","uv_auth":"preferred","uv_reg":"preferred","process_timeout":"666","device_bind_key":"true"}],"backupfile":"domain.json1694234798869"}
{"domains":[{"domain":"portal.mac-air-m2.dqj-home.com","reg_page":"/dev.html","uv_auth":"preferred","uv_reg":"preferred"},{"domain":"sample.mac-air-m2.dqj-home.com","reg_page":"/devices.html","uv_auth":"preferred","uv_reg":"required","device_limit":"2","registration_session_timeout":"999"},{"domain":"rp01.abc.com","enterprise":true,"enterprise_aaguids":["aaaaaaaaaaa888888888999999999000","ee882879721c491397753dfcce97072a"],"device_bind_key":true,"user_session_active_timeout":600,"user_session_hard_timeout":43200},{"domain":"rp02.def.com","reg_page":"/devices.html","passkey_sync":"true","device_bind_key":"false","enterprise":"false","status":"OK"},{"domain":"rp03.abc.com","enterprise":false},{"domain":"www.test1.com"},{"domain":"www.test2.com","process_timeout":"666","user_session_active_timeout":"999","user_session_hard_timeout":"88888","device_bind_key":"true","enterprise":"true","enterprise_aaguids":["1aaaaaaaaaa888888888999999999000","2aaaaaaaaaa888888888999999999000"]},{"domain":"www.test3.com","process_timeout":"678"},{"domain":"www.hot01.com"},{"domain":"www.gmail.test1.com","enterprise":"true","enterprise_aaguids":["2aaaaaaaaaa888888888999999999001"]},{"domain":"sss.ggg.com","reg_page":"/kk/rrr199.html","process_timeout":"666","user_session_active_timeout":"999","registration_session_timeout":"988"},{"domain":"test1.abc.com","reg_page":"/dvc.jsp","device_bind_key":"true"},{"domain":"aaa.bb.com","reg_page":"/ddd.html","uv_auth":"preferred","uv_reg":"preferred"},{"domain":"999.ttt.com","reg_page":"/dd.html","uv_auth":"preferred","uv_reg":"preferred"},{"domain":"hotmail.abc.com","reg_page":"/dev.html","uv_auth":"preferred","uv_reg":"preferred","process_timeout":"660"},{"domain":"marketing.abc.com","reg_page":"/dev.jsp","uv_auth":"preferred","uv_reg":"preferred","process_timeout":"666","device_bind_key":"true"},{"domain":"sample.another.net","reg_page":"/devices.html","uv_auth":"preferred","uv_reg":"preferred"}],"backupfile":"domain.json1695888509902"}
2 changes: 1 addition & 1 deletion fido-mds3/data/payload.json

Large diffs are not rendered by default.

32 changes: 26 additions & 6 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -1228,7 +1228,7 @@ async function listUsers(domains, start, end, search = null, last_created = null
if(0<devices.length){
var devs = []
for(let elm of devices) {
const meta_entry = await mds3_client.findByAAGUID(elm.aaguid)
const meta_entry = await findLocalAAGuide(elm.aaguid)
devs.push({
device_id: elm.attest_id,
userAgent: elm.user_agent?elm.user_agent:"",
Expand All @@ -1246,7 +1246,7 @@ async function listUsers(domains, start, end, search = null, last_created = null
rtn.users = results
rtn.last_created = last_created
}catch (err) {
logger.error('DB err:'+err)
logger.error('listUsers DB err:'+err)
} finally {
connection.release()
}
Expand Down Expand Up @@ -1869,8 +1869,8 @@ async function listUserDevices(rpId, session_id){
const atts = database.get(rpId).get(user_sessions.get(session_id)).attestation
var index = 0;
if(atts){
for(let att of atts) {
const meta_entry = await mds3_client.findByAAGUID(att.aaguid)
for(let att of atts) {
const meta_entry = await findLocalAAGuide(att.aaguid)
rtn.push({
device_id: index,
userAgent: att.userAgent?att.userAgent:"",
Expand Down Expand Up @@ -1901,7 +1901,7 @@ async function listUserDevices(rpId, session_id){
})
if(0<results.length){
for(let elm of results) {
const meta_entry = await mds3_client.findByAAGUID(elm.aaguid)
const meta_entry = await findLocalAAGuide(elm.aaguid)
rtn.push({
device_id: elm.attest_id,
userAgent: elm.user_agent?elm.user_agent:"",
Expand All @@ -1912,7 +1912,7 @@ async function listUserDevices(rpId, session_id){
}
}
}catch (err) {
logger.error('DB err:'+err)
logger.error('listUserDevices DB err:'+err)
} finally {
connection.release()
}
Expand Down Expand Up @@ -2316,4 +2316,24 @@ async function bindedDeviceKey(rpId, username, publickey, unique_device_id){
}else{
logger.error('Unknown process.env.STORAGE_TYPE:' + process.env.STORAGE_TYPE);
}
}

var localAAGuidMetaMap = new Map()
var localAAGuidMetaMapLastUpdate = 0
async function findLocalAAGuide(aaguid){
//localAAGuidMetaMapLastUpdate is over 24 hours
if((Date.now() - localAAGuidMetaMapLastUpdate) > 86400000){
localAAGuidMetaMapLastUpdate = Date.now()
localAAGuidMetaMap.clear()
localAAGuidMetaMap.set('00000000000000000000000000000000', '0')
}
var meta_entry = localAAGuidMetaMap.get(aaguid)
if(!meta_entry){
meta_entry = await mds3_client.findByAAGUID(aaguid, false)
if(meta_entry)localAAGuidMetaMap.set(aaguid, meta_entry)
else localAAGuidMetaMap.set(aaguid, '0')
}else if('0' == meta_entry){
meta_entry = null
}
return meta_entry
}

0 comments on commit 88b9e93

Please sign in to comment.