Use client identities from successful authentications, only
This commit is contained in:
@@ -112,33 +112,27 @@ static status_t process_sasl(private_pt_tls_server_t *this,
|
|||||||
sasl_mechanism_t *sasl, chunk_t data)
|
sasl_mechanism_t *sasl, chunk_t data)
|
||||||
{
|
{
|
||||||
bio_writer_t *writer;
|
bio_writer_t *writer;
|
||||||
status_t status;
|
|
||||||
identification_t *client;
|
identification_t *client;
|
||||||
tnccs_t *tnccs;
|
tnccs_t *tnccs;
|
||||||
|
|
||||||
status = sasl->process(sasl, data);
|
switch (sasl->process(sasl, data))
|
||||||
if (status != NEED_MORE)
|
|
||||||
{
|
|
||||||
client = sasl->get_client(sasl);
|
|
||||||
if (client)
|
|
||||||
{
|
|
||||||
DBG1(DBG_TNC, "SASL client identity is '%Y'", client);
|
|
||||||
this->tnccs->set_peer_id(this->tnccs, client);
|
|
||||||
if (streq(sasl->get_name(sasl), "PLAIN"))
|
|
||||||
{
|
|
||||||
tnccs = (tnccs_t*)this->tnccs;
|
|
||||||
tnccs->set_auth_type(tnccs, TNC_AUTH_PASSWORD);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (status)
|
|
||||||
{
|
{
|
||||||
case NEED_MORE:
|
case NEED_MORE:
|
||||||
return NEED_MORE;
|
return NEED_MORE;
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
DBG1(DBG_TNC, "SASL %s authentication successful",
|
DBG1(DBG_TNC, "SASL %s authentication successful",
|
||||||
sasl->get_name(sasl));
|
sasl->get_name(sasl));
|
||||||
|
client = sasl->get_client(sasl);
|
||||||
|
if (client)
|
||||||
|
{
|
||||||
|
DBG1(DBG_TNC, "SASL client identity is '%Y'", client);
|
||||||
|
this->tnccs->set_peer_id(this->tnccs, client);
|
||||||
|
if (streq(sasl->get_name(sasl), "PLAIN"))
|
||||||
|
{
|
||||||
|
tnccs = (tnccs_t*)this->tnccs;
|
||||||
|
tnccs->set_auth_type(tnccs, TNC_AUTH_PASSWORD);
|
||||||
|
}
|
||||||
|
}
|
||||||
writer = bio_writer_create(1);
|
writer = bio_writer_create(1);
|
||||||
writer->write_uint8(writer, PT_TLS_SASL_RESULT_SUCCESS);
|
writer->write_uint8(writer, PT_TLS_SASL_RESULT_SUCCESS);
|
||||||
if (pt_tls_write(this->tls, writer, PT_TLS_SASL_RESULT,
|
if (pt_tls_write(this->tls, writer, PT_TLS_SASL_RESULT,
|
||||||
|
|||||||
Reference in New Issue
Block a user