mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8296143: CertAttrSet's set/get mechanism is not type-safe
Reviewed-by: mullan
This commit is contained in:
parent
d04d6566b0
commit
671f84bd86
66 changed files with 643 additions and 2902 deletions
|
@ -49,18 +49,9 @@ import sun.security.util.*;
|
|||
* @see Extension
|
||||
*/
|
||||
public class BasicConstraintsExtension extends Extension
|
||||
implements CertAttrSet<String> {
|
||||
/**
|
||||
* Identifier for this attribute, to be used with the
|
||||
* get, set, delete methods of Certificate, x509 type.
|
||||
*/
|
||||
public static final String IDENT = "x509.info.extensions.BasicConstraints";
|
||||
/**
|
||||
* Attribute names.
|
||||
*/
|
||||
implements CertAttrSet {
|
||||
|
||||
public static final String NAME = "BasicConstraints";
|
||||
public static final String IS_CA = "is_ca";
|
||||
public static final String PATH_LEN = "path_len";
|
||||
|
||||
// Private data members
|
||||
private boolean ca = false;
|
||||
|
@ -198,48 +189,19 @@ implements CertAttrSet<String> {
|
|||
super.encode(out);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the attribute value.
|
||||
*/
|
||||
public void set(String name, Object obj) throws IOException {
|
||||
if (name.equalsIgnoreCase(IS_CA)) {
|
||||
if (!(obj instanceof Boolean)) {
|
||||
throw new IOException("Attribute value should be of type Boolean.");
|
||||
}
|
||||
ca = ((Boolean)obj).booleanValue();
|
||||
} else if (name.equalsIgnoreCase(PATH_LEN)) {
|
||||
if (!(obj instanceof Integer)) {
|
||||
throw new IOException("Attribute value should be of type Integer.");
|
||||
}
|
||||
pathLen = ((Integer)obj).intValue();
|
||||
} else {
|
||||
throw new IOException("Attribute name not recognized by " +
|
||||
"CertAttrSet:BasicConstraints.");
|
||||
}
|
||||
encodeThis();
|
||||
public boolean isCa() {
|
||||
return ca;
|
||||
}
|
||||
|
||||
public int getPathLen() {
|
||||
return pathLen;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the attribute value.
|
||||
*/
|
||||
public Object get(String name) throws IOException {
|
||||
if (name.equalsIgnoreCase(IS_CA)) {
|
||||
return (Boolean.valueOf(ca));
|
||||
} else if (name.equalsIgnoreCase(PATH_LEN)) {
|
||||
return (Integer.valueOf(pathLen));
|
||||
} else {
|
||||
throw new IOException("Attribute name not recognized by " +
|
||||
"CertAttrSet:BasicConstraints.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Return the name of this attribute.
|
||||
* Return the name of this extension.
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
return (NAME);
|
||||
return NAME;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue