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