1 /************************************************************************ 2 * Copyright (c) 2000-2006 The Apache Software Foundation. * 3 * All rights reserved. * 4 * ------------------------------------------------------------------- * 5 * Licensed under the Apache License, Version 2.0 (the "License"); you * 6 * may not use this file except in compliance with the License. You * 7 * may obtain a copy of the License at: * 8 * * 9 * http://www.apache.org/licenses/LICENSE-2.0 * 10 * * 11 * Unless required by applicable law or agreed to in writing, software * 12 * distributed under the License is distributed on an "AS IS" BASIS, * 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * 14 * implied. See the License for the specific language governing * 15 * permissions and limitations under the License. * 16 ***********************************************************************/ 17 package org.apache.james.transport.matchers.smime; 18 19 import java.util.Collection; 20 21 import javax.mail.MessagingException; 22 import javax.mail.internet.MimeMessage; 23 24 import org.apache.mailet.GenericMatcher; 25 import org.apache.mailet.Mail; 26 27 /*** 28 * checks if a mail is smime signed. 29 30 */ 31 public class IsSMIMESigned extends GenericMatcher { 32 33 /*** 34 * @see org.apache.mailet.Matcher#match(org.apache.mailet.Mail) 35 */ 36 public Collection match(Mail mail) throws MessagingException { 37 if (mail == null) return null; 38 39 MimeMessage message = mail.getMessage(); 40 if (message == null) return null; 41 42 43 if (message.isMimeType("multipart/signed") 44 || message.isMimeType("application/pkcs7-signature") 45 || message.isMimeType("application/x-pkcs7-signature") 46 || ((message.isMimeType("application/pkcs7-mime") || message.isMimeType("application/x-pkcs7-mime")) 47 && message.getContentType().indexOf("signed-data") != -1)) { 48 return mail.getRecipients(); 49 } else return null; 50 } 51 }