如果给定域,则返回正确的专有名称 [英] Return the correct Distinguished Name if given a Domain

查看:23
本文介绍了如果给定域,则返回正确的专有名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果给定一组域,我需要检查并根据 DC 选择正确的 DN

If given an array of domains I need to check and choose the right DN based on the DC

示例:给定的域是red.blue.net"

Example: given domain is "red.blue.net"

检查它是否存在于 Dn 的列表中

Check if it exist in a list of Dn’s

const dnArray = ["CN=Larry,OU=test,DC=RED,DC=COM", "CN=JIM,OU=test,DC=GRE,DC=TEN,DC=COM", ";CN=Will,OU=testUsers,DC=Example,DC=COM", CN=Sam,OU=test,DC=RED,DC=Blue,DC=NET"];

const dnArray = ["CN=Larry ,OU=test,DC=RED,DC=COM", "CN=JIM,OU=test,DC=GRE,DC=TEN,DC=COM", "CN=Will,OU=testUsers,DC= Example,DC=COM", "CN=Sam,OU=test,DC=RED,DC=Blue,DC=NET"];

返回

CN=Sam,OU=test,DC=RED,DC=Blue,DC=NET"

"CN=Sam,OU=test,DC=RED,DC=Blue,DC=NET"

const dnArray = ["CN=Larry,OU=test,DC=RED,DC=COM", "CN=JIM,OU=test,DC=GRE,DC=TEN,DC=COM", "CN=Will,OU=testUsers,DC= Example,DC=COM"];

const domain = "red.blue.net"

let res = dnArray.map(item => item.split(",")

    .filter(e => e.startsWith("DC="))

    .join(".")

);

for (const dn of dnArray) {

   //if the DCs in domain matches the one for dnArray I want to return right dn "CN=Sam,OU=test,DC=RED,DC=Blue,DC=NET"

 }

推荐答案

下面的代码会返回

CN=Larry,OU=test,DC=RED,DC=BLUE,DC=COM

CN=Larry,OU=test,DC=RED,DC=BLUE,DC=COM

    const dnArray = 
        [
          "CN=JIM,OU=test,DC=GRE,DC=TEN,DC=COM",
          "CN=Will,OU=testUsers,DC=Example,DC=COM",
          "CN=Larry,OU=test,DC=RED,DC=COM", 
          "CN=Larry,OU=test,DC=BLUE,DC=COM",
          "CN=Larry,OU=test,DC=RED,DC=BLUE,DC=NET",
          "CN=Larry,OU=test,DC=RED,DC=BLUE,DC=COM"
         ];

    
    var dn;
    const domain = "RED.BLUE.COM" // Will also work as red.blue.net/gov/etc
    
    var dc = domain.toLowerCase().split('.'); // "['red', 'blue', 'com']"

    var included = false;
    
    dnArray.forEach(name => {
        dc.forEach(domain => {
            if(name.toLowerCase().includes('dc=' + domain))
                included = true;        
            else
                included = false;
        });
    
        // If included is true, set dn to equal the current name
        dn =  included ? name : dn; 
    });
    
    console.log(dn);

这篇关于如果给定域,则返回正确的专有名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆