Java Code Examples for javax.security.sasl.RealmChoiceCallback

The following are top voted examples for showing how to use javax.security.sasl.RealmChoiceCallback. These examples are extracted from open source projects. You can vote up the examples you like and your votes will be used in our system to generate more good examples.
Example 1
Project: ditb   File: TestHBaseSaslRpcClient.java   Source Code and License 6 votes vote down vote up
@Test
public void testSaslClientCallbackHandler() throws UnsupportedCallbackException {
  final Token<? extends TokenIdentifier> token = createTokenMock();
  when(token.getIdentifier()).thenReturn(DEFAULT_USER_NAME.getBytes());
  when(token.getPassword()).thenReturn(DEFAULT_USER_PASSWORD.getBytes());

  final NameCallback nameCallback = mock(NameCallback.class);
  final PasswordCallback passwordCallback = mock(PasswordCallback.class);
  final RealmCallback realmCallback = mock(RealmCallback.class);
  final RealmChoiceCallback realmChoiceCallback = mock(RealmChoiceCallback.class);

  Callback[] callbackArray = {nameCallback, passwordCallback,
      realmCallback, realmChoiceCallback};
  final SaslClientCallbackHandler saslClCallbackHandler = new SaslClientCallbackHandler(token);
  saslClCallbackHandler.handle(callbackArray);
  verify(nameCallback).setName(anyString());
  verify(realmCallback).setText(anyString());
  verify(passwordCallback).setPassword(any(char[].class));
}
 
Example 2
Project: EIM   File: SASLMechanism.java   Source Code and License 6 votes vote down vote up
/**
 * 
 */
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    for (int i = 0; i < callbacks.length; i++) {
        if (callbacks[i] instanceof NameCallback) {
            NameCallback ncb = (NameCallback)callbacks[i];
            ncb.setName(authenticationId);
        } else if(callbacks[i] instanceof PasswordCallback) {
            PasswordCallback pcb = (PasswordCallback)callbacks[i];
            pcb.setPassword(password.toCharArray());
        } else if(callbacks[i] instanceof RealmCallback) {
            RealmCallback rcb = (RealmCallback)callbacks[i];
            rcb.setText(hostname);
        } else if(callbacks[i] instanceof RealmChoiceCallback){
            //unused
            //RealmChoiceCallback rccb = (RealmChoiceCallback)callbacks[i];
        } else {
           throw new UnsupportedCallbackException(callbacks[i]);
        }
     }
}
 
Example 3
Project: pbase   File: TestHBaseSaslRpcClient.java   Source Code and License 6 votes vote down vote up
@Test
public void testSaslClientCallbackHandler() throws UnsupportedCallbackException {
  final Token<? extends TokenIdentifier> token = createTokenMock();
  when(token.getIdentifier()).thenReturn(DEFAULT_USER_NAME.getBytes());
  when(token.getPassword()).thenReturn(DEFAULT_USER_PASSWORD.getBytes());

  final NameCallback nameCallback = mock(NameCallback.class);
  final PasswordCallback passwordCallback = mock(PasswordCallback.class);
  final RealmCallback realmCallback = mock(RealmCallback.class);
  final RealmChoiceCallback realmChoiceCallback = mock(RealmChoiceCallback.class);

  Callback[] callbackArray = {nameCallback, passwordCallback,
      realmCallback, realmChoiceCallback};
  final SaslClientCallbackHandler saslClCallbackHandler = new SaslClientCallbackHandler(token);
  saslClCallbackHandler.handle(callbackArray);
  verify(nameCallback).setName(anyString());
  verify(realmCallback).setText(anyString());
  verify(passwordCallback).setPassword(any(char[].class));
}
 
Example 4
Project: HIndex   File: TestHBaseSaslRpcClient.java   Source Code and License 6 votes vote down vote up
@Test
public void testSaslClientCallbackHandler() throws UnsupportedCallbackException {
  final Token<? extends TokenIdentifier> token = createTokenMock();
  when(token.getIdentifier()).thenReturn(DEFAULT_USER_NAME.getBytes());
  when(token.getPassword()).thenReturn(DEFAULT_USER_PASSWORD.getBytes());

  final NameCallback nameCallback = mock(NameCallback.class);
  final PasswordCallback passwordCallback = mock(PasswordCallback.class);
  final RealmCallback realmCallback = mock(RealmCallback.class);
  final RealmChoiceCallback realmChoiceCallback = mock(RealmChoiceCallback.class);

  Callback[] callbackArray = {nameCallback, passwordCallback,
      realmCallback, realmChoiceCallback};
  final SaslClientCallbackHandler saslClCallbackHandler = new SaslClientCallbackHandler(token);
  saslClCallbackHandler.handle(callbackArray);
  verify(nameCallback).setName(anyString());
  verify(realmCallback).setText(anyString());
  verify(passwordCallback).setPassword(any(char[].class));
}
 
Example 5
Project: RecordServiceClient   File: ThriftUtils.java   Source Code and License 6 votes vote down vote up
@Override
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
  for (Callback cb : callbacks) {
    if (cb instanceof RealmChoiceCallback) {
      continue; // Ignore.
    } else if (cb instanceof NameCallback) {
      ((NameCallback)cb).setName(token_.identifier);
    } else if (cb instanceof PasswordCallback) {
      PasswordCallback pcb = ((PasswordCallback)cb);
      if (token_.password == null) {
        pcb.setPassword(null);
      } else {
        pcb.setPassword(token_.password.toCharArray());
      }
    } else if (cb instanceof RealmCallback) {
      RealmCallback rcb = (RealmCallback)cb;
      rcb.setText(rcb.getDefaultText());
    } else {
      throw new UnsupportedCallbackException(cb, "Unexpected DIGEST-MD5 callback");
    }
  }
}
 
Example 6
Project: hbase   File: TestHBaseSaslRpcClient.java   Source Code and License 6 votes vote down vote up
@Test
public void testSaslClientCallbackHandler() throws UnsupportedCallbackException {
  final Token<? extends TokenIdentifier> token = createTokenMock();
  when(token.getIdentifier()).thenReturn(Bytes.toBytes(DEFAULT_USER_NAME));
  when(token.getPassword()).thenReturn(Bytes.toBytes(DEFAULT_USER_PASSWORD));

  final NameCallback nameCallback = mock(NameCallback.class);
  final PasswordCallback passwordCallback = mock(PasswordCallback.class);
  final RealmCallback realmCallback = mock(RealmCallback.class);
  final RealmChoiceCallback realmChoiceCallback = mock(RealmChoiceCallback.class);

  Callback[] callbackArray = {nameCallback, passwordCallback, realmCallback, realmChoiceCallback};
  final SaslClientCallbackHandler saslClCallbackHandler = new SaslClientCallbackHandler(token);
  saslClCallbackHandler.handle(callbackArray);
  verify(nameCallback).setName(anyString());
  verify(realmCallback).setText(any());
  verify(passwordCallback).setPassword(any());
}
 
Example 7
Project: cn1   File: RealmChoiceCallbackTest.java   Source Code and License 6 votes vote down vote up
@Override
protected Object[] getData() {
    Object [] oo = {
            new RealmChoiceCallback(msgs[0], msgs, 0, true),
            new RealmChoiceCallback(msgs[1], msgs, 1, true),
            new RealmChoiceCallback(msgs[1], msgs, 0, false),
            new RealmChoiceCallback(msgs[2], msgs, 0, false)

    };        
    for (Object element : oo) {
        RealmChoiceCallback rc = (RealmChoiceCallback)element;           
        if (rc.allowMultipleSelections()) {
            rc.setSelectedIndexes(idx);
        } else {
            rc.setSelectedIndex(msgs.length - 1);
        }
    }
    return oo;
}
 
Example 8
Project: PyroDB   File: TestHBaseSaslRpcClient.java   Source Code and License 6 votes vote down vote up
@Test
public void testSaslClientCallbackHandler() throws UnsupportedCallbackException {
  final Token<? extends TokenIdentifier> token = createTokenMock();
  when(token.getIdentifier()).thenReturn(DEFAULT_USER_NAME.getBytes());
  when(token.getPassword()).thenReturn(DEFAULT_USER_PASSWORD.getBytes());

  final NameCallback nameCallback = mock(NameCallback.class);
  final PasswordCallback passwordCallback = mock(PasswordCallback.class);
  final RealmCallback realmCallback = mock(RealmCallback.class);
  final RealmChoiceCallback realmChoiceCallback = mock(RealmChoiceCallback.class);

  Callback[] callbackArray = {nameCallback, passwordCallback,
      realmCallback, realmChoiceCallback};
  final SaslClientCallbackHandler saslClCallbackHandler = new SaslClientCallbackHandler(token);
  saslClCallbackHandler.handle(callbackArray);
  verify(nameCallback).setName(anyString());
  verify(realmCallback).setText(anyString());
  verify(passwordCallback).setPassword(any(char[].class));
}
 
Example 9
Project: wildfly-core   File: SecretIdentityService.java   Source Code and License 6 votes vote down vote up
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    for (Callback current : callbacks) {
        if (current instanceof RealmCallback) {
            RealmCallback rcb = (RealmCallback) current;
            String defaultText = rcb.getDefaultText();
            rcb.setText(defaultText); // For now just use the realm suggested.
        } else if (current instanceof RealmChoiceCallback) {
            throw DomainManagementLogger.ROOT_LOGGER.realmNotSupported(current);
        } else if (current instanceof OptionalNameCallback) {
            // Do nothing as we don't want to set a name for local authentication.
        } else if (current instanceof NameCallback) {
            NameCallback ncb = (NameCallback) current;
            ncb.setName(userName);
        } else if (current instanceof PasswordCallback) {
            PasswordCallback pcb = (PasswordCallback) current;
            pcb.setPassword(password);
        } else {
            throw new UnsupportedCallbackException(current);
        }
    }
}
 
Example 10
Project: wildfly-core   File: HostControllerConnection.java   Source Code and License 6 votes vote down vote up
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    for (Callback current : callbacks) {
        if (current instanceof RealmCallback) {
            RealmCallback rcb = (RealmCallback) current;
            String defaultText = rcb.getDefaultText();
            rcb.setText(defaultText); // For now just use the realm suggested.
        } else if (current instanceof RealmChoiceCallback) {
            throw new UnsupportedCallbackException(current, "Realm choice not currently supported.");
        } else if (current instanceof NameCallback) {
            NameCallback ncb = (NameCallback) current;
            ncb.setName(userName);
        } else if (current instanceof PasswordCallback) {
            PasswordCallback pcb = (PasswordCallback) current;
            pcb.setPassword(authKey.toCharArray());
        } else {
            throw new UnsupportedCallbackException(current);
        }
    }
}
 
Example 11
Project: java-bells   File: SASLMechanism.java   Source Code and License 6 votes vote down vote up
/**
 * 
 */
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    for (int i = 0; i < callbacks.length; i++) {
        if (callbacks[i] instanceof NameCallback) {
            NameCallback ncb = (NameCallback)callbacks[i];
            ncb.setName(authenticationId);
        } else if(callbacks[i] instanceof PasswordCallback) {
            PasswordCallback pcb = (PasswordCallback)callbacks[i];
            pcb.setPassword(password.toCharArray());
        } else if(callbacks[i] instanceof RealmCallback) {
            RealmCallback rcb = (RealmCallback)callbacks[i];
            //Retrieve the REALM from the challenge response that the server returned when the client initiated the authentication 
            //exchange. If this value is not null or empty, *this value* has to be sent back to the server in the client's response 
            //to the server's challenge
            String text = rcb.getDefaultText();
            //The SASL client (sc) created in smack  uses rcb.getText when creating the negotiatedRealm to send it back to the server
            //Make sure that this value matches the server's realm
            rcb.setText(text);
        } else if(callbacks[i] instanceof RealmChoiceCallback){
            //unused
            //RealmChoiceCallback rccb = (RealmChoiceCallback)callbacks[i];
        } else {
           throw new UnsupportedCallbackException(callbacks[i]);
        }
     }
}
 
Example 12
Project: freeVM   File: RealmChoiceCallbackTest.java   Source Code and License 6 votes vote down vote up
@Override
protected Object[] getData() {
    Object [] oo = {
            new RealmChoiceCallback(msgs[0], msgs, 0, true),
            new RealmChoiceCallback(msgs[1], msgs, 1, true),
            new RealmChoiceCallback(msgs[1], msgs, 0, false),
            new RealmChoiceCallback(msgs[2], msgs, 0, false)

    };        
    for (Object element : oo) {
        RealmChoiceCallback rc = (RealmChoiceCallback)element;           
        if (rc.allowMultipleSelections()) {
            rc.setSelectedIndexes(idx);
        } else {
            rc.setSelectedIndex(msgs.length - 1);
        }
    }
    return oo;
}
 
Example 13
Project: freeVM   File: RealmChoiceCallbackTest.java   Source Code and License 6 votes vote down vote up
@Override
protected Object[] getData() {
    Object [] oo = {
            new RealmChoiceCallback(msgs[0], msgs, 0, true),
            new RealmChoiceCallback(msgs[1], msgs, 1, true),
            new RealmChoiceCallback(msgs[1], msgs, 0, false),
            new RealmChoiceCallback(msgs[2], msgs, 0, false)

    };        
    for (Object element : oo) {
        RealmChoiceCallback rc = (RealmChoiceCallback)element;           
        if (rc.allowMultipleSelections()) {
            rc.setSelectedIndexes(idx);
        } else {
            rc.setSelectedIndex(msgs.length - 1);
        }
    }
    return oo;
}
 
Example 14
Project: jdk8u-jdk   File: ClientServerTest.java   Source Code and License 5 votes vote down vote up
@Override
public void handle(Callback[] callbacks) throws IOException,
        UnsupportedCallbackException {
    for (Callback callback : callbacks) {
        if (callback instanceof NameCallback) {
            System.out.println("NameCallback");
            ((NameCallback) callback).setName(userId);
        } else if (callback instanceof PasswordCallback) {
            System.out.println("PasswordCallback");
            ((PasswordCallback) callback).setPassword(passwd);
        } else if (callback instanceof RealmCallback) {
            System.out.println("RealmCallback");
            ((RealmCallback) callback).setText(realm);
        } else if (callback instanceof RealmChoiceCallback) {
            System.out.println("RealmChoiceCallback");
            RealmChoiceCallback choice = (RealmChoiceCallback) callback;
            if (realm == null) {
                choice.setSelectedIndex(choice.getDefaultChoice());
            } else {
                String[] choices = choice.getChoices();
                for (int j = 0; j < choices.length; j++) {
                    if (realm.equals(choices[j])) {
                        choice.setSelectedIndex(j);
                        break;
                    }
                }
            }
        } else if (callback instanceof AuthorizeCallback) {
            System.out.println("AuthorizeCallback");
            ((AuthorizeCallback) callback).setAuthorized(true);
            if (authId == null || authId.trim().length() == 0) {
                authId = userId;
            }
            ((AuthorizeCallback) callback).setAuthorizedID(authId);
        } else {
            throw new UnsupportedCallbackException(callback);
        }
    }
}
 
Example 15
Project: openjdk-jdk10   File: ClientServerTest.java   Source Code and License 5 votes vote down vote up
@Override
public void handle(Callback[] callbacks) throws IOException,
        UnsupportedCallbackException {
    for (Callback callback : callbacks) {
        if (callback instanceof NameCallback) {
            System.out.println("NameCallback");
            ((NameCallback) callback).setName(userId);
        } else if (callback instanceof PasswordCallback) {
            System.out.println("PasswordCallback");
            ((PasswordCallback) callback).setPassword(passwd);
        } else if (callback instanceof RealmCallback) {
            System.out.println("RealmCallback");
            ((RealmCallback) callback).setText(realm);
        } else if (callback instanceof RealmChoiceCallback) {
            System.out.println("RealmChoiceCallback");
            RealmChoiceCallback choice = (RealmChoiceCallback) callback;
            if (realm == null) {
                choice.setSelectedIndex(choice.getDefaultChoice());
            } else {
                String[] choices = choice.getChoices();
                for (int j = 0; j < choices.length; j++) {
                    if (realm.equals(choices[j])) {
                        choice.setSelectedIndex(j);
                        break;
                    }
                }
            }
        } else if (callback instanceof AuthorizeCallback) {
            System.out.println("AuthorizeCallback");
            ((AuthorizeCallback) callback).setAuthorized(true);
            if (authId == null || authId.trim().length() == 0) {
                authId = userId;
            }
            ((AuthorizeCallback) callback).setAuthorizedID(authId);
        } else {
            throw new UnsupportedCallbackException(callback);
        }
    }
}
 
Example 16
Project: openjdk9   File: ClientServerTest.java   Source Code and License 5 votes vote down vote up
@Override
public void handle(Callback[] callbacks) throws IOException,
        UnsupportedCallbackException {
    for (Callback callback : callbacks) {
        if (callback instanceof NameCallback) {
            System.out.println("NameCallback");
            ((NameCallback) callback).setName(userId);
        } else if (callback instanceof PasswordCallback) {
            System.out.println("PasswordCallback");
            ((PasswordCallback) callback).setPassword(passwd);
        } else if (callback instanceof RealmCallback) {
            System.out.println("RealmCallback");
            ((RealmCallback) callback).setText(realm);
        } else if (callback instanceof RealmChoiceCallback) {
            System.out.println("RealmChoiceCallback");
            RealmChoiceCallback choice = (RealmChoiceCallback) callback;
            if (realm == null) {
                choice.setSelectedIndex(choice.getDefaultChoice());
            } else {
                String[] choices = choice.getChoices();
                for (int j = 0; j < choices.length; j++) {
                    if (realm.equals(choices[j])) {
                        choice.setSelectedIndex(j);
                        break;
                    }
                }
            }
        } else if (callback instanceof AuthorizeCallback) {
            System.out.println("AuthorizeCallback");
            ((AuthorizeCallback) callback).setAuthorized(true);
            if (authId == null || authId.trim().length() == 0) {
                authId = userId;
            }
            ((AuthorizeCallback) callback).setAuthorizedID(authId);
        } else {
            throw new UnsupportedCallbackException(callback);
        }
    }
}
 
Example 17
Project: jdk8u_jdk   File: ClientServerTest.java   Source Code and License 5 votes vote down vote up
@Override
public void handle(Callback[] callbacks) throws IOException,
        UnsupportedCallbackException {
    for (Callback callback : callbacks) {
        if (callback instanceof NameCallback) {
            System.out.println("NameCallback");
            ((NameCallback) callback).setName(userId);
        } else if (callback instanceof PasswordCallback) {
            System.out.println("PasswordCallback");
            ((PasswordCallback) callback).setPassword(passwd);
        } else if (callback instanceof RealmCallback) {
            System.out.println("RealmCallback");
            ((RealmCallback) callback).setText(realm);
        } else if (callback instanceof RealmChoiceCallback) {
            System.out.println("RealmChoiceCallback");
            RealmChoiceCallback choice = (RealmChoiceCallback) callback;
            if (realm == null) {
                choice.setSelectedIndex(choice.getDefaultChoice());
            } else {
                String[] choices = choice.getChoices();
                for (int j = 0; j < choices.length; j++) {
                    if (realm.equals(choices[j])) {
                        choice.setSelectedIndex(j);
                        break;
                    }
                }
            }
        } else if (callback instanceof AuthorizeCallback) {
            System.out.println("AuthorizeCallback");
            ((AuthorizeCallback) callback).setAuthorized(true);
            if (authId == null || authId.trim().length() == 0) {
                authId = userId;
            }
            ((AuthorizeCallback) callback).setAuthorizedID(authId);
        } else {
            throw new UnsupportedCallbackException(callback);
        }
    }
}
 
Example 18
Project: lookaside_java-1.8.0-openjdk   File: ClientServerTest.java   Source Code and License 5 votes vote down vote up
@Override
public void handle(Callback[] callbacks) throws IOException,
        UnsupportedCallbackException {
    for (Callback callback : callbacks) {
        if (callback instanceof NameCallback) {
            System.out.println("NameCallback");
            ((NameCallback) callback).setName(userId);
        } else if (callback instanceof PasswordCallback) {
            System.out.println("PasswordCallback");
            ((PasswordCallback) callback).setPassword(passwd);
        } else if (callback instanceof RealmCallback) {
            System.out.println("RealmCallback");
            ((RealmCallback) callback).setText(realm);
        } else if (callback instanceof RealmChoiceCallback) {
            System.out.println("RealmChoiceCallback");
            RealmChoiceCallback choice = (RealmChoiceCallback) callback;
            if (realm == null) {
                choice.setSelectedIndex(choice.getDefaultChoice());
            } else {
                String[] choices = choice.getChoices();
                for (int j = 0; j < choices.length; j++) {
                    if (realm.equals(choices[j])) {
                        choice.setSelectedIndex(j);
                        break;
                    }
                }
            }
        } else if (callback instanceof AuthorizeCallback) {
            System.out.println("AuthorizeCallback");
            ((AuthorizeCallback) callback).setAuthorized(true);
            if (authId == null || authId.trim().length() == 0) {
                authId = userId;
            }
            ((AuthorizeCallback) callback).setAuthorizedID(authId);
        } else {
            throw new UnsupportedCallbackException(callback);
        }
    }
}
 
Example 19
Project: teiid   File: AdminFactory.java   Source Code and License 5 votes vote down vote up
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    // Special case for anonymous authentication to avoid prompting user for their name.
    if (callbacks.length == 1 && callbacks[0] instanceof NameCallback) {
        ((NameCallback)callbacks[0]).setName("anonymous CLI user"); //$NON-NLS-1$
        return;
    }

    for (Callback current : callbacks) {
        if (current instanceof RealmCallback) {
            RealmCallback rcb = (RealmCallback) current;
            String defaultText = rcb.getDefaultText();
            rcb.setText(defaultText); // For now just use the realm suggested.
            if (this.realmShown == false) {
                this.realmShown = true;
            }
        } else if (current instanceof RealmChoiceCallback) {
            throw new UnsupportedCallbackException(current, "Realm choice not currently supported."); //$NON-NLS-1$
        } else if (current instanceof NameCallback) {
            NameCallback ncb = (NameCallback) current;
            ncb.setName(this.userName);
        } else if (current instanceof PasswordCallback) {
            PasswordCallback pcb = (PasswordCallback) current;
            pcb.setPassword(this.password);
        } else {
            throw new UnsupportedCallbackException(current);
        }
    }
}
 
Example 20
Project: cn1   File: DefaultCallbackHandler.java   Source Code and License 5 votes vote down vote up
public void handle(Callback[] callbacks) throws java.io.IOException,
        UnsupportedCallbackException {
    for (int i = 0; i < callbacks.length; i++) {
        if (callbacks[i] instanceof RealmChoiceCallback) {
            // TODO what to do here?
            // RealmChoiceCallback rcc = (RealmChoiceCallback) callbacks[i];

        } else if (callbacks[i] instanceof RealmCallback) {
            RealmCallback rc = (RealmCallback) callbacks[i];
            if (env.get(JAVA_NAMING_SECURITY_SASL_REALM) != null) {
                realm = (String) env.get(JAVA_NAMING_SECURITY_SASL_REALM);
                rc.setText(realm);
            } else {
                rc.setText(realm);
            }
        } else if (callbacks[i] instanceof PasswordCallback) {
            PasswordCallback pc = (PasswordCallback) callbacks[i];
            pc.setPassword(Utils.getCharArray(env
                    .get(Context.SECURITY_CREDENTIALS)));
        } else if (callbacks[i] instanceof NameCallback) {
            //authentication Id
            NameCallback nc = (NameCallback) callbacks[i];
            nc.setName((String) env.get(Context.SECURITY_PRINCIPAL));
        } else {
            throw new UnsupportedCallbackException(callbacks[i]);
        }
    }
}
 
Example 21
Project: cn1   File: RealmChoiceCallbackTest.java   Source Code and License 5 votes vote down vote up
public void assertDeserialized(Serializable oref, Serializable otest) {
        RealmChoiceCallback ref = (RealmChoiceCallback) oref;
        RealmChoiceCallback test = (RealmChoiceCallback) otest;
        
        boolean all = ref.allowMultipleSelections();
        assertEquals(all, test.allowMultipleSelections());
        String prompt = ref.getPrompt();
        assertEquals(prompt, test.getPrompt());
        
        String [] ch = ref.getChoices();
        String [] tCh = test.getChoices();        
        assertEquals(ch.length, tCh.length);        
        for (int i = 0; i < ch.length; i++) {
            assertEquals(ch[i], tCh[i]);
        }
        assertEquals(ref.getDefaultChoice(), test.getDefaultChoice());
        int [] in = ref.getSelectedIndexes();
        int [] tIn = test.getSelectedIndexes();
//        assertNull("in is not null", in);            
//        assertNull("tIn is not null", tIn);

        if (!all) {
            assertEquals("Incorrect length in ", in.length, 1);
            assertEquals("Incorrect length tIn ", tIn.length, 1);
            assertEquals("Incorrect index", in[0], tIn[0]);
        } else {
            assertEquals("Incorrect length", in.length, tIn.length);
            for (int i = 0; i < in.length; i++) {
                assertEquals(in[i], tIn[i]);
            }            
        }
    }
 
Example 22
Project: jamppa   File: SASLMechanism.java   Source Code and License 5 votes vote down vote up
/**
 * 
 */
public void handle(Callback[] callbacks) throws IOException,
        UnsupportedCallbackException {
    for (int i = 0; i < callbacks.length; i++) {
        if (callbacks[i] instanceof NameCallback) {
            NameCallback ncb = (NameCallback) callbacks[i];
            ncb.setName(authenticationId);
        } else if (callbacks[i] instanceof PasswordCallback) {
            PasswordCallback pcb = (PasswordCallback) callbacks[i];
            pcb.setPassword(password.toCharArray());
        } else if (callbacks[i] instanceof RealmCallback) {
            RealmCallback rcb = (RealmCallback) callbacks[i];
            // Retrieve the REALM from the challenge response that the
            // server returned when the client initiated the authentication
            // exchange. If this value is not null or empty, *this value*
            // has to be sent back to the server in the client's response
            // to the server's challenge
            String text = rcb.getDefaultText();
            // The SASL client (sc) created in smack uses rcb.getText when
            // creating the negotiatedRealm to send it back to the server
            // Make sure that this value matches the server's realm
            rcb.setText(text);
        } else if (callbacks[i] instanceof RealmChoiceCallback) {
            // unused
            // RealmChoiceCallback rccb = (RealmChoiceCallback)callbacks[i];
        } else {
            throw new UnsupportedCallbackException(callbacks[i]);
        }
    }
}
 
Example 23
Project: nextop-client   File: DefaultCallbackHandler.java   Source Code and License 5 votes vote down vote up
public void handle(Callback[] callbacks) throws java.io.IOException,
        UnsupportedCallbackException {
    for (int i = 0; i < callbacks.length; i++) {
        if (callbacks[i] instanceof RealmChoiceCallback) {
            // TODO what to do here?
            // RealmChoiceCallback rcc = (RealmChoiceCallback) callbacks[i];

        } else if (callbacks[i] instanceof RealmCallback) {
            RealmCallback rc = (RealmCallback) callbacks[i];
            if (env.get(JAVA_NAMING_SECURITY_SASL_REALM) != null) {
                realm = (String) env.get(JAVA_NAMING_SECURITY_SASL_REALM);
                rc.setText(realm);
            } else {
                rc.setText(realm);
            }
        } else if (callbacks[i] instanceof PasswordCallback) {
            PasswordCallback pc = (PasswordCallback) callbacks[i];
            pc.setPassword(Utils.getCharArray(env
                    .get(Context.SECURITY_CREDENTIALS)));
        } else if (callbacks[i] instanceof NameCallback) {
            //authentication Id
            NameCallback nc = (NameCallback) callbacks[i];
            nc.setName((String) env.get(Context.SECURITY_PRINCIPAL));
        } else {
            throw new UnsupportedCallbackException(callbacks[i]);
        }
    }
}
 
Example 24
Project: freeVM   File: RealmChoiceCallbackTest.java   Source Code and License 5 votes vote down vote up
public void assertDeserialized(Serializable oref, Serializable otest) {
        RealmChoiceCallback ref = (RealmChoiceCallback) oref;
        RealmChoiceCallback test = (RealmChoiceCallback) otest;
        
        boolean all = ref.allowMultipleSelections();
        assertEquals(all, test.allowMultipleSelections());
        String prompt = ref.getPrompt();
        assertEquals(prompt, test.getPrompt());
        
        String [] ch = ref.getChoices();
        String [] tCh = test.getChoices();        
        assertEquals(ch.length, tCh.length);        
        for (int i = 0; i < ch.length; i++) {
            assertEquals(ch[i], tCh[i]);
        }
        assertEquals(ref.getDefaultChoice(), test.getDefaultChoice());
        int [] in = ref.getSelectedIndexes();
        int [] tIn = test.getSelectedIndexes();
//        assertNull("in is not null", in);            
//        assertNull("tIn is not null", tIn);

        if (!all) {
            assertEquals("Incorrect length in ", in.length, 1);
            assertEquals("Incorrect length tIn ", tIn.length, 1);
            assertEquals("Incorrect index", in[0], tIn[0]);
        } else {
            assertEquals("Incorrect length", in.length, tIn.length);
            for (int i = 0; i < in.length; i++) {
                assertEquals(in[i], tIn[i]);
            }            
        }
    }
 
Example 25
Project: freeVM   File: DefaultCallbackHandler.java   Source Code and License 5 votes vote down vote up
public void handle(Callback[] callbacks) throws java.io.IOException,
        UnsupportedCallbackException {
    for (int i = 0; i < callbacks.length; i++) {
        if (callbacks[i] instanceof RealmChoiceCallback) {
            // TODO what to do here?
            // RealmChoiceCallback rcc = (RealmChoiceCallback) callbacks[i];

        } else if (callbacks[i] instanceof RealmCallback) {
            RealmCallback rc = (RealmCallback) callbacks[i];
            if (env.get(JAVA_NAMING_SECURITY_SASL_REALM) != null) {
                realm = (String) env.get(JAVA_NAMING_SECURITY_SASL_REALM);
                rc.setText(realm);
            } else {
                rc.setText(realm);
            }
        } else if (callbacks[i] instanceof PasswordCallback) {
            PasswordCallback pc = (PasswordCallback) callbacks[i];
            pc.setPassword(Utils.getCharArray(env
                    .get(Context.SECURITY_CREDENTIALS)));
        } else if (callbacks[i] instanceof NameCallback) {
            //authentication Id
            NameCallback nc = (NameCallback) callbacks[i];
            nc.setName((String) env.get(Context.SECURITY_PRINCIPAL));
        } else {
            throw new UnsupportedCallbackException(callbacks[i]);
        }
    }
}
 
Example 26
Project: freeVM   File: RealmChoiceCallbackTest.java   Source Code and License 5 votes vote down vote up
public void assertDeserialized(Serializable oref, Serializable otest) {
        RealmChoiceCallback ref = (RealmChoiceCallback) oref;
        RealmChoiceCallback test = (RealmChoiceCallback) otest;
        
        boolean all = ref.allowMultipleSelections();
        assertEquals(all, test.allowMultipleSelections());
        String prompt = ref.getPrompt();
        assertEquals(prompt, test.getPrompt());
        
        String [] ch = ref.getChoices();
        String [] tCh = test.getChoices();        
        assertEquals(ch.length, tCh.length);        
        for (int i = 0; i < ch.length; i++) {
            assertEquals(ch[i], tCh[i]);
        }
        assertEquals(ref.getDefaultChoice(), test.getDefaultChoice());
        int [] in = ref.getSelectedIndexes();
        int [] tIn = test.getSelectedIndexes();
//        assertNull("in is not null", in);            
//        assertNull("tIn is not null", tIn);

        if (!all) {
            assertEquals("Incorrect length in ", in.length, 1);
            assertEquals("Incorrect length tIn ", tIn.length, 1);
            assertEquals("Incorrect index", in[0], tIn[0]);
        } else {
            assertEquals("Incorrect length", in.length, tIn.length);
            for (int i = 0; i < in.length; i++) {
                assertEquals(in[i], tIn[i]);
            }            
        }
    }
 
Example 27
Project: wildfly-maven-plugin   File: ClientCallbackHandler.java   Source Code and License 5 votes vote down vote up
@Override
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    // Special case for anonymous authentication to avoid prompting user for their name.
    if (callbacks.length == 1 && callbacks[0] instanceof NameCallback) {
        ((NameCallback) callbacks[0]).setName("anonymous demo user");
        return;
    }

    for (Callback current : callbacks) {
        if (current instanceof RealmCallback) {
            final RealmCallback rcb = (RealmCallback) current;
            final String defaultText = rcb.getDefaultText();
            rcb.setText(defaultText); // For now just use the realm suggested.

            prompt(defaultText);
        } else if (current instanceof RealmChoiceCallback) {
            throw new UnsupportedCallbackException(current, "Realm choice not currently supported.");
        } else if (current instanceof NameCallback) {
            final NameCallback ncb = (NameCallback) current;
            final String userName = obtainUsername("Username:");

            ncb.setName(userName);
        } else if (current instanceof PasswordCallback) {
            PasswordCallback pcb = (PasswordCallback) current;
            char[] password = obtainPassword("Password:");

            pcb.setPassword(password);
        } else {
            throw new UnsupportedCallbackException(current);
        }
    }
}
 
Example 28
Project: directory-ldap-api   File: SaslCallbackHandler.java   Source Code and License 4 votes vote down vote up
/**
 * {@inheritDoc}
 */
@Override
public void handle( Callback[] callbacks ) throws IOException, UnsupportedCallbackException
{
    for ( Callback cb : callbacks )
    {
        if ( cb instanceof NameCallback )
        {
            NameCallback ncb = ( NameCallback ) cb;

            String name = saslReq.getUsername();
            LOG.debug( "sending name {} in the NameCallback", name );
            ncb.setName( name );
        }
        else if ( cb instanceof PasswordCallback )
        {
            PasswordCallback pcb = ( PasswordCallback ) cb;

            LOG.debug( "sending credentials in the PasswordCallback" );
            pcb.setPassword( Strings.utf8ToString( saslReq.getCredentials() ).toCharArray() );
        }
        else if ( cb instanceof RealmCallback )
        {
            RealmCallback rcb = ( RealmCallback ) cb;

            if ( saslReq.getRealmName() != null )
            {
                LOG.debug( "sending the user specified realm value {} in the RealmCallback", saslReq.getRealmName() );
                rcb.setText( saslReq.getRealmName() );
            }
            else
            {
                LOG.debug(
                    "No user specified relam value, sending the default realm value {} in the RealmCallback",
                    rcb.getDefaultText() );
                rcb.setText( rcb.getDefaultText() );
            }
        }
        else if ( cb instanceof RealmChoiceCallback )
        {
            RealmChoiceCallback rccb = ( RealmChoiceCallback ) cb;

            boolean foundRealmName = false;

            String[] realmNames = rccb.getChoices();
            for ( int i = 0; i < realmNames.length; i++ )
            {
                String realmName = realmNames[i];
                if ( realmName.equals( saslReq.getRealmName() ) )
                {
                    foundRealmName = true;

                    LOG.debug( "sending the user specified realm value {} in the RealmChoiceCallback", realmName );
                    rccb.setSelectedIndex( i );
                    break;
                }
            }

            if ( !foundRealmName )
            {
                throw new IOException(
                    I18n.format(
                        "Cannot match ''java.naming.security.sasl.realm'' property value ''{0}'' with choices ''{1}'' in RealmChoiceCallback.",
                        saslReq.getRealmName(), getRealmNamesAsString( realmNames ) ) );
            }
        }
    }
}
 
Example 29
Project: OpenJSharp   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 30
Project: jdk8u-jdk   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 31
Project: openjdk-jdk10   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuilder allChoices = new StringBuilder();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j]).append(',');
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 32
Project: openjdk9   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuilder allChoices = new StringBuilder();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j]).append(',');
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 33
Project: jdk8u_jdk   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 34
Project: lookaside_java-1.8.0-openjdk   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 35
Project: Smack   File: SASLJavaXMechanism.java   Source Code and License 4 votes vote down vote up
@Override
protected void authenticateInternal()
                throws SmackException {
    String[] mechanisms = { getName() };
    Map<String, String> props = getSaslProps();
    try {
        sc = Sasl.createSaslClient(mechanisms, null, "xmpp", getServerName(), props,
                        new CallbackHandler() {
                            @Override
                            public void handle(Callback[] callbacks) throws IOException,
                                            UnsupportedCallbackException {
                                for (int i = 0; i < callbacks.length; i++) {
                                    if (callbacks[i] instanceof NameCallback) {
                                        NameCallback ncb = (NameCallback) callbacks[i];
                                        ncb.setName(authenticationId);
                                    }
                                    else if (callbacks[i] instanceof PasswordCallback) {
                                        PasswordCallback pcb = (PasswordCallback) callbacks[i];
                                        pcb.setPassword(password.toCharArray());
                                    }
                                    else if (callbacks[i] instanceof RealmCallback) {
                                        RealmCallback rcb = (RealmCallback) callbacks[i];
                                        // Retrieve the REALM from the challenge response that
                                        // the server returned when the client initiated the
                                        // authentication exchange. If this value is not null or
                                        // empty, *this value* has to be sent back to the server
                                        // in the client's response to the server's challenge
                                        String text = rcb.getDefaultText();
                                        // The SASL client (sc) created in smack uses
                                        // rcb.getText when creating the negotiatedRealm to send
                                        // it back to the server. Make sure that this value
                                        // matches the server's realm
                                        rcb.setText(text);
                                    }
                                    else if (callbacks[i] instanceof RealmChoiceCallback) {
                                        // unused, prevents UnsupportedCallbackException
                                        // RealmChoiceCallback rccb =
                                        // (RealmChoiceCallback)callbacks[i];
                                    }
                                    else {
                                        throw new UnsupportedCallbackException(callbacks[i]);
                                    }
                                }
                            }

                        });
    }
    catch (SaslException e) {
        throw new SmackException(e);
    }
}
 
Example 36
Project: infobip-open-jdk-8   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 37
Project: jdk8u-dev-jdk   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 38
Project: jdk7-jdk   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 39
Project: openjdk-source-code-learn   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}
 
Example 40
Project: OLD-OpenJDK8   File: DefaultCallbackHandler.java   Source Code and License 4 votes vote down vote up
public void handle(Callback[] callbacks)
    throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            if (callbacks[i] instanceof NameCallback) {
                ((NameCallback)callbacks[i]).setName(authenticationID);

            } else if (callbacks[i] instanceof PasswordCallback) {
                ((PasswordCallback)callbacks[i]).setPassword(passwd);

            } else if (callbacks[i] instanceof RealmChoiceCallback) {
                /* Deals with a choice of realms */
                String[] choices =
                    ((RealmChoiceCallback)callbacks[i]).getChoices();
                int selected = 0;

                if (authRealm != null && authRealm.length() > 0) {
                    selected = -1; // no realm chosen
                    for (int j = 0; j < choices.length; j++) {
                        if (choices[j].equals(authRealm)) {
                            selected = j;
                        }
                    }
                    if (selected == -1) {
                        StringBuffer allChoices = new StringBuffer();
                        for (int j = 0; j <  choices.length; j++) {
                            allChoices.append(choices[j] + ",");
                        }
                        throw new IOException("Cannot match " +
                            "'java.naming.security.sasl.realm' property value, '" +
                            authRealm + "' with choices " + allChoices +
                            "in RealmChoiceCallback");
                    }
                }

                ((RealmChoiceCallback)callbacks[i]).setSelectedIndex(selected);

            } else if (callbacks[i] instanceof RealmCallback) {
                /* 1 or 0 realms specified in challenge */
                RealmCallback rcb = (RealmCallback) callbacks[i];
                if (authRealm != null) {
                    rcb.setText(authRealm);  // Use what user supplied
                } else {
                    String defaultRealm = rcb.getDefaultText();
                    if (defaultRealm != null) {
                        rcb.setText(defaultRealm); // Use what server supplied
                    } else {
                        rcb.setText("");  // Specify no realm
                    }
                }
            } else {
                throw new UnsupportedCallbackException(callbacks[i]);
            }
        }
}