View Javadoc

1   /*
2    * $Id: SecurityNamespaceHandlerTestCase.java 22414 2011-07-14 13:24:46Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.test.config;
12  
13  import org.mule.api.EncryptionStrategy;
14  import org.mule.api.security.SecurityManager;
15  import org.mule.security.PasswordBasedEncryptionStrategy;
16  import org.mule.security.SecretKeyEncryptionStrategy;
17  import org.mule.tck.junit4.FunctionalTestCase;
18  import org.mule.tck.security.MockEncryptionStrategy;
19  import org.mule.tck.security.TestSingleUserSecurityProvider;
20  
21  import java.util.Iterator;
22  
23  import org.junit.Test;
24  
25  import static org.junit.Assert.assertNotNull;
26  import static org.junit.Assert.assertTrue;
27  
28  public class SecurityNamespaceHandlerTestCase extends FunctionalTestCase
29  {
30  
31      @Override
32      protected String getConfigResources()
33      {
34          return "security-namespace-config.xml";
35      }
36  
37      @Test
38      public void testSecurity()
39      {
40          SecurityManager securityManager = muleContext.getSecurityManager();
41          assertNotNull(securityManager.getProvider("dummySecurityProvider"));
42          assertTrue(securityManager.getProvider("dummySecurityProvider") instanceof TestSingleUserSecurityProvider);
43          verifyEncryptionStrategy(securityManager, "dummyEncryptionStrategy", MockEncryptionStrategy.class);
44          verifyEncryptionStrategy(securityManager, "passwordEncryptionStrategy", PasswordBasedEncryptionStrategy.class);
45          verifyEncryptionStrategy(securityManager, "secretKeyEncryptionStrategy", SecretKeyEncryptionStrategy.class);
46      }
47      
48      private void verifyEncryptionStrategy(SecurityManager securityManager, String name, Class clazz)
49      {
50          Iterator strategies = securityManager.getEncryptionStrategies().iterator();
51          logger.debug("Listing strategies");
52          while (strategies.hasNext())
53          {
54              EncryptionStrategy strategy = (EncryptionStrategy) strategies.next();
55              logger.debug(strategy.getName() + " / " + strategy.toString() + " / " + strategy.getClass());
56          }
57          assertNotNull(name, securityManager.getEncryptionStrategy(name));
58          assertTrue(securityManager.getEncryptionStrategy(name).getClass().equals(clazz));
59      }
60  
61  }