Ejemplo n.º 1
0
  public void initiateSASL() {
    SaslMechanisms mechanisms = new SaslMechanisms();
    final Enumeration<SaslServerFactory> saslServerFactories = Sasl.getSaslServerFactories();

    SaslServerFactory f;
    ArrayList<Symbol> mechanismsList = new ArrayList<Symbol>();
    while (saslServerFactories.hasMoreElements()) {
      f = saslServerFactories.nextElement();
      final String[] mechanismNames = f.getMechanismNames(null);
      for (String name : mechanismNames) {
        mechanismsList.add(Symbol.valueOf(name));
      }
    }
    mechanisms.setSaslServerMechanisms(mechanismsList.toArray(new Symbol[mechanismsList.size()]));
    _saslFrameOutput.send(new SASLFrame(mechanisms), null);
  }
Ejemplo n.º 2
0
 public void receiveSaslMechanisms(final SaslMechanisms saslMechanisms) {
   if (Arrays.asList(saslMechanisms.getSaslServerMechanisms()).contains(Symbol.valueOf("PLAIN"))) {
     SaslInit init = new SaslInit();
     init.setMechanism(Symbol.valueOf("PLAIN"));
     init.setHostname(_remoteHostname);
     byte[] usernameBytes = _user.getName().getBytes(Charset.forName("UTF-8"));
     byte[] passwordBytes = _password.getBytes(Charset.forName("UTF-8"));
     byte[] initResponse = new byte[usernameBytes.length + passwordBytes.length + 2];
     System.arraycopy(usernameBytes, 0, initResponse, 1, usernameBytes.length);
     System.arraycopy(
         passwordBytes, 0, initResponse, usernameBytes.length + 2, passwordBytes.length);
     init.setInitialResponse(new Binary(initResponse));
     _saslFrameOutput.send(new SASLFrame(init), null);
   }
 }