yangys
2025-05-26 2ba2c339acf41fd7bb2a49f0ce186fd664a80cb5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.qianwen.license.keystore;
 
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x500.X500NameBuilder;
import org.bouncycastle.asn1.x500.style.BCStyle;
 
import cn.hutool.core.util.StrUtil;
 
public class SubjectBuilder {
     /**
     * 常用名称(Common Name)
     */
    private String cn;
    /**
     * 企业名称(Organization)
     */
    private String o;
    /**
     * 部门(Organizational Unit)
     */
    private String ou;
    /**
     * 国家(Country)
     */
    private String c;
    /**
     * 省份(State)
     */
    private String st;
    /**
     * 城市(Locality)
     */
    private String l;
 
    public SubjectBuilder setCn(String cn) {
        this.cn = cn;
        return this;
    }
 
    public SubjectBuilder setO(String o) {
        this.o = o;
        return this;
    }
 
    public SubjectBuilder setOu(String ou) {
        this.ou = ou;
        return this;
    }
 
    public SubjectBuilder setC(String c) {
        this.c = c;
        return this;
    }
 
    public SubjectBuilder setSt(String st) {
        this.st = st;
        return this;
    }
 
    public SubjectBuilder setL(String l) {
        this.l = l;
        return this;
    }
 
    public X500Name build() {
        X500NameBuilder x500NameBuilder = new X500NameBuilder();
        if (StrUtil.isNotBlank(cn)) {
            x500NameBuilder.addRDN(BCStyle.CN, cn);
        }
        if (StrUtil.isNotBlank(o)) {
            x500NameBuilder.addRDN(BCStyle.O, o);
        }
        if (StrUtil.isNotBlank(ou)) {
            x500NameBuilder.addRDN(BCStyle.OU, ou);
        }
        if (StrUtil.isNotBlank(c)) {
            x500NameBuilder.addRDN(BCStyle.C, c);
        }
        if (StrUtil.isNotBlank(st)) {
            x500NameBuilder.addRDN(BCStyle.ST, st);
        }
        if (StrUtil.isNotBlank(l)) {
            x500NameBuilder.addRDN(BCStyle.L, l);
        }
        return x500NameBuilder.build();
    }
}