maguro      2004/09/12 13:11:54

  Added:       modules/itests/src/itest/org/openejb/test/security
                        BaseSecurityTestClient.java
  Log:

  Some security tests.
  
  Revision  Changes    Path
  1.1                  
openejb/modules/itests/src/itest/org/openejb/test/security/BaseSecurityTestClient.java
  
  Index: BaseSecurityTestClient.java
  ===================================================================
  /**
   *
   * Copyright 2004 The Apache Software Foundation
   *
   *  Licensed under the Apache License, Version 2.0 (the "License");
   *  you may not use this file except in compliance with the License.
   *  You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   */
  package org.openejb.test.security;
  
  import javax.naming.InitialContext;
  import javax.security.auth.Subject;
  import javax.security.auth.callback.Callback;
  import javax.security.auth.callback.CallbackHandler;
  import javax.security.auth.callback.NameCallback;
  import javax.security.auth.callback.PasswordCallback;
  import javax.security.auth.callback.UnsupportedCallbackException;
  import javax.security.auth.login.LoginContext;
  import java.io.IOException;
  import java.util.Properties;
  
  import org.openejb.test.NamedTestCase;
  import org.openejb.test.TestManager;
  
  
  /**
   * @version $Revision: 1.1 $ $Date: 2004/09/12 17:11:54 $
   */
  public class BaseSecurityTestClient extends NamedTestCase {
  
      protected InitialContext initialContext;
  
  
      protected LoginContext public_david_login_context;
      protected Subject public_david_subject;
      protected LoginContext public_alan_login_context;
      protected Subject public_alan_subject;
      protected LoginContext public_dain_login_context;
      protected Subject public_dain_subject;
      protected LoginContext public_noel_login_context;
      protected Subject public_noel_subject;
      protected LoginContext public_geir_login_context;
      protected Subject public_geir_subject;
      protected LoginContext public_george_login_context;
      protected Subject public_george_subject;
      protected LoginContext public_gracie_login_context;
      protected Subject public_gracie_subject;
      protected LoginContext black_david_login_context;
      protected Subject black_david_subject;
      protected LoginContext black_dain_login_context;
      protected Subject black_dain_subject;
  
      public BaseSecurityTestClient(String testName) {
          super("BaseSecurity." + testName);
      }
  
      protected void setUp() throws Exception {
  
          Properties properties = TestManager.getServer().getContextEnvironment();
  
          initialContext = new InitialContext(properties);
  
          public_david_login_context = new LoginContext("public", new 
UsernamePasswordCallback("david", "guitar"));
          public_david_login_context.login();
          public_david_subject = public_david_login_context.getSubject();
  
          public_alan_login_context = new LoginContext("public", new 
UsernamePasswordCallback("alan", "cat"));
          public_alan_login_context.login();
          public_alan_subject = public_alan_login_context.getSubject();
  
          public_dain_login_context = new LoginContext("public", new 
UsernamePasswordCallback("dain", "dog"));
          public_dain_login_context.login();
          public_dain_subject = public_dain_login_context.getSubject();
  
          public_noel_login_context = new LoginContext("public", new 
UsernamePasswordCallback("noel", "nudge"));
          public_noel_login_context.login();
          public_noel_subject = public_noel_login_context.getSubject();
  
          public_geir_login_context = new LoginContext("public", new 
UsernamePasswordCallback("geir", "apple"));
          public_geir_login_context.login();
          public_geir_subject = public_geir_login_context.getSubject();
  
          public_george_login_context = new LoginContext("public", new 
UsernamePasswordCallback("george", "bone"));
          public_george_login_context.login();
          public_george_subject = public_george_login_context.getSubject();
  
          public_gracie_login_context = new LoginContext("public", new 
UsernamePasswordCallback("gracie", "biscuit"));
          public_gracie_login_context.login();
          public_gracie_subject = public_gracie_login_context.getSubject();
  
          black_david_login_context = new LoginContext("black", new 
UsernamePasswordCallback("david", "deltaforce"));
          black_david_login_context.login();
          black_david_subject = black_david_login_context.getSubject();
  
          black_dain_login_context = new LoginContext("black", new 
UsernamePasswordCallback("dain", "secret"));
          black_dain_login_context.login();
          black_dain_subject = black_dain_login_context.getSubject();
      }
  
      protected void tearDown() throws Exception {
          public_david_login_context.logout();
          public_alan_login_context.logout();
          public_dain_login_context.logout();
          public_noel_login_context.logout();
          public_geir_login_context.logout();
          public_george_login_context.logout();
          public_gracie_login_context.logout();
          black_david_login_context.logout();
          black_dain_login_context.logout();
      }
  
      public static class UsernamePasswordCallback implements CallbackHandler {
  
          private final String username;
          private final String password;
  
          public UsernamePasswordCallback(String username, String password) {
              this.username = username;
              this.password = password;
          }
  
          public void handle(Callback[] callbacks) throws IOException, 
UnsupportedCallbackException {
              for (int i = 0; i < callbacks.length; i++) {
                  if (callbacks[i] instanceof PasswordCallback) {
                      ((PasswordCallback) 
callbacks[i]).setPassword(password.toCharArray());
                  } else if (callbacks[i] instanceof NameCallback) {
                      ((NameCallback) callbacks[i]).setName(username);
                  }
              }
          }
      }
  }
  
  
  

Reply via email to