Skip to content

Commit

Permalink
added use of getPrivileged to command map setting.
Browse files Browse the repository at this point in the history
  • Loading branch information
dghgit committed Jul 14, 2014
1 parent 34ee5d8 commit cebc7ce
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.io.IOException;
import java.io.OutputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;

import javax.activation.CommandMap;
import javax.activation.MailcapCommandMap;
Expand Down Expand Up @@ -36,12 +38,20 @@ public class SMIMECompressedGenerator

static
{
MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();
final MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();

mc.addMailcap("application/pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_mime");
mc.addMailcap("application/x-pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime");

CommandMap.setDefaultCommandMap(mc);
AccessController.doPrivileged(new PrivilegedAction<Object>()
{
public Object run()
{
CommandMap.setDefaultCommandMap(mc);

return null;
}
});
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.io.IOException;
import java.io.OutputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.List;

Expand Down Expand Up @@ -70,7 +72,15 @@ public class SMIMEEnvelopedGenerator

static
{
CommandMap.setDefaultCommandMap(addCommands(CommandMap.getDefaultCommandMap()));
AccessController.doPrivileged(new PrivilegedAction<Object>()
{
public Object run()
{
CommandMap.setDefaultCommandMap(addCommands(CommandMap.getDefaultCommandMap()));

return null;
}
});
}

private static MailcapCommandMap addCommands(CommandMap cm)
Expand Down Expand Up @@ -193,13 +203,13 @@ public void write(OutputStream out)
throws IOException
{
OutputStream encrypted;

try
{
if (_firstTime)
{
encrypted = fact.open(out, _encryptor);

_firstTime = false;
}
else
Expand All @@ -208,9 +218,9 @@ public void write(OutputStream out)
}

_content.getDataHandler().setCommandMap(addCommands(CommandMap.getDefaultCommandMap()));

_content.writeTo(encrypted);

encrypted.close();
}
catch (MessagingException e)
Expand All @@ -223,7 +233,7 @@ public void write(OutputStream out)
}
}
}

private class EnvelopedGenerator
extends CMSEnvelopedDataStreamGenerator
{
Expand Down
29 changes: 20 additions & 9 deletions mail/src/main/java/org/bouncycastle/mail/smime/SMIMESigned.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package org.bouncycastle.mail.smime;

import org.bouncycastle.cms.CMSException;
import org.bouncycastle.cms.CMSProcessable;
import org.bouncycastle.cms.CMSSignedData;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;

import javax.activation.CommandMap;
import javax.activation.MailcapCommandMap;
Expand All @@ -13,10 +16,10 @@
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimePart;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.bouncycastle.cms.CMSException;
import org.bouncycastle.cms.CMSProcessable;
import org.bouncycastle.cms.CMSSignedData;

/**
* general class for handling a pkcs7-signature message.
Expand Down Expand Up @@ -79,15 +82,23 @@ private static InputStream getInputStream(

static
{
MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();
final MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();

mc.addMailcap("application/pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_signature");
mc.addMailcap("application/pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_mime");
mc.addMailcap("application/x-pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_signature");
mc.addMailcap("application/x-pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime");
mc.addMailcap("multipart/signed;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.multipart_signed");

CommandMap.setDefaultCommandMap(mc);
AccessController.doPrivileged(new PrivilegedAction<Object>()
{
public Object run()
{
CommandMap.setDefaultCommandMap(mc);

return null;
}
});
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.io.IOException;
import java.io.OutputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
Expand Down Expand Up @@ -117,7 +119,15 @@ private static MailcapCommandMap addCommands(CommandMap cm)

static
{
CommandMap.setDefaultCommandMap(addCommands(CommandMap.getDefaultCommandMap()));
AccessController.doPrivileged(new PrivilegedAction<Object>()
{
public Object run()
{
CommandMap.setDefaultCommandMap(addCommands(CommandMap.getDefaultCommandMap()));

return null;
}
});

Map stdMicAlgs = new HashMap();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;

import javax.activation.CommandMap;
import javax.activation.MailcapCommandMap;
Expand Down Expand Up @@ -123,15 +125,23 @@ private static CMSTypedStream getSignedInputStream(

static
{
MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();
final MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();

mc.addMailcap("application/pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_signature");
mc.addMailcap("application/pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_mime");
mc.addMailcap("application/x-pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_signature");
mc.addMailcap("application/x-pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime");
mc.addMailcap("multipart/signed;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.multipart_signed");

CommandMap.setDefaultCommandMap(mc);
AccessController.doPrivileged(new PrivilegedAction<Object>()
{
public Object run()
{
CommandMap.setDefaultCommandMap(mc);

return null;
}
});
}

/**
Expand Down

0 comments on commit cebc7ce

Please sign in to comment.