mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +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
|
@ -67,20 +67,9 @@ import sun.security.util.DerValue;
|
|||
*/
|
||||
|
||||
public class SubjectInfoAccessExtension extends Extension
|
||||
implements CertAttrSet<String> {
|
||||
implements CertAttrSet {
|
||||
|
||||
/**
|
||||
* 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.SubjectInfoAccess";
|
||||
|
||||
/**
|
||||
* Attribute name.
|
||||
*/
|
||||
public static final String NAME = "SubjectInfoAccess";
|
||||
public static final String DESCRIPTIONS = "descriptions";
|
||||
|
||||
/**
|
||||
* The List of AccessDescription objects.
|
||||
|
@ -140,7 +129,7 @@ public class SubjectInfoAccessExtension extends Extension
|
|||
}
|
||||
|
||||
/**
|
||||
* Return the name of this attribute.
|
||||
* Return the name of this extension.
|
||||
*/
|
||||
@Override
|
||||
public String getName() {
|
||||
|
@ -163,40 +152,7 @@ public class SubjectInfoAccessExtension extends Extension
|
|||
super.encode(out);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the attribute value.
|
||||
*/
|
||||
@SuppressWarnings("unchecked") // Checked with instanceof
|
||||
public void set(String name, Object obj) throws IOException {
|
||||
if (name.equalsIgnoreCase(DESCRIPTIONS)) {
|
||||
if (!(obj instanceof List)) {
|
||||
throw new IOException("Attribute value should be of type List.");
|
||||
}
|
||||
accessDescriptions = (List<AccessDescription>)obj;
|
||||
} else {
|
||||
throw new IOException("Attribute name [" + name +
|
||||
"] not recognized by " +
|
||||
"CertAttrSet:SubjectInfoAccessExtension.");
|
||||
}
|
||||
encodeThis();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the attribute value.
|
||||
*/
|
||||
public List<AccessDescription> get(String name) throws IOException {
|
||||
if (name.equalsIgnoreCase(DESCRIPTIONS)) {
|
||||
return accessDescriptions;
|
||||
} else {
|
||||
throw new IOException("Attribute name [" + name +
|
||||
"] not recognized by " +
|
||||
"CertAttrSet:SubjectInfoAccessExtension.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Encode this extension value
|
||||
// Encode this extension value
|
||||
private void encodeThis() throws IOException {
|
||||
if (accessDescriptions.isEmpty()) {
|
||||
this.extensionValue = null;
|
||||
|
@ -218,5 +174,4 @@ public class SubjectInfoAccessExtension extends Extension
|
|||
return super.toString() +
|
||||
"SubjectInfoAccess [\n " + accessDescriptions + "\n]\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue