Skip to content

Commit

Permalink
fix(kerberos): provide default gss flags
Browse files Browse the repository at this point in the history
  • Loading branch information
mbroadst committed Jul 8, 2018
1 parent 1b4144e commit b365934
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/kerberos.cc
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class InitializeClientWorker : public Nan::AsyncWorker {
virtual void Execute() { virtual void Execute() {
std::unique_ptr<gss_client_state, FreeDeleter> state(gss_client_state_new()); std::unique_ptr<gss_client_state, FreeDeleter> state(gss_client_state_new());
std::unique_ptr<gss_result, FreeDeleter> result( std::unique_ptr<gss_result, FreeDeleter> result(
authenticate_gss_client_init(_service.c_str(), _principal.c_str(), _gss_flags, _mech_oid, state.get())); authenticate_gss_client_init(_service.c_str(), _principal.c_str(), _gss_flags, NULL, _mech_oid, state.get()));


if (result->code == AUTH_GSS_ERROR) { if (result->code == AUTH_GSS_ERROR) {
SetErrorMessage(result->message); SetErrorMessage(result->message);
Expand Down Expand Up @@ -62,7 +62,7 @@ NAN_METHOD(InitializeClient) {
Nan::Callback* callback = new Nan::Callback(Nan::To<v8::Function>(info[2]).ToLocalChecked()); Nan::Callback* callback = new Nan::Callback(Nan::To<v8::Function>(info[2]).ToLocalChecked());


std::string principal = StringOptionValue(options, "principal"); std::string principal = StringOptionValue(options, "principal");
uint32_t gss_flags = UInt32OptionValue(options, "gssFlags", 0); uint32_t gss_flags = UInt32OptionValue(options, "gssFlags", GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG);
uint32_t mech_oid_int = UInt32OptionValue(options, "mechOID", 0); uint32_t mech_oid_int = UInt32OptionValue(options, "mechOID", 0);
gss_OID mech_oid = GSS_C_NO_OID; gss_OID mech_oid = GSS_C_NO_OID;
if (mech_oid_int == GSS_MECH_OID_KRB5) { if (mech_oid_int == GSS_MECH_OID_KRB5) {
Expand Down
3 changes: 1 addition & 2 deletions src/kerberos_gss.cc
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -202,7 +202,6 @@ gss_result* authenticate_gss_client_init(


int authenticate_gss_client_clean(gss_client_state *state) int authenticate_gss_client_clean(gss_client_state *state)
{ {
OM_uint32 maj_stat;
OM_uint32 min_stat; OM_uint32 min_stat;
int ret = AUTH_GSS_COMPLETE; int ret = AUTH_GSS_COMPLETE;


Expand Down Expand Up @@ -268,7 +267,7 @@ gss_result* authenticate_gss_client_step(gss_client_state* state, const char* ch
&input_token, &input_token,
NULL, NULL,
&output_token, &output_token,
NULL NULL,
NULL); NULL);


if ((maj_stat != GSS_S_COMPLETE) && (maj_stat != GSS_S_CONTINUE_NEEDED)) if ((maj_stat != GSS_S_COMPLETE) && (maj_stat != GSS_S_CONTINUE_NEEDED))
Expand Down
6 changes: 5 additions & 1 deletion src/kerberos_gss.h
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -61,7 +61,11 @@ gss_server_state* gss_server_state_new();


gss_result* server_principal_details(const char* service, const char* hostname); gss_result* server_principal_details(const char* service, const char* hostname);


gss_result* authenticate_gss_client_init(const char* service, const char* principal, long int gss_flags, gss_OID mech_oid, gss_client_state* state); gss_result* authenticate_gss_client_init(
const char* service, const char* principal, long int gss_flags,
gss_server_state* delegatestate, gss_OID mech_oid, gss_client_state* state
);

int authenticate_gss_client_clean(gss_client_state* state); int authenticate_gss_client_clean(gss_client_state* state);
gss_result* authenticate_gss_client_step(gss_client_state* state, const char* challenge, struct gss_channel_bindings_struct* channel_bindings); gss_result* authenticate_gss_client_step(gss_client_state* state, const char* challenge, struct gss_channel_bindings_struct* channel_bindings);
gss_result* authenticate_gss_client_unwrap(gss_client_state* state, const char* challenge); gss_result* authenticate_gss_client_unwrap(gss_client_state* state, const char* challenge);
Expand Down
2 changes: 2 additions & 0 deletions test/gssapi_tests.js
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,8 @@
'use strict'; 'use strict';
const kerberos = require('..'); const kerberos = require('..');
const expect = require('chai').expect; const expect = require('chai').expect;
const SegfaultHandler = require('segfault-handler');
SegfaultHandler.registerHandler();


const username = process.env.KERBEROS_USERNAME || 'administrator'; const username = process.env.KERBEROS_USERNAME || 'administrator';
// const password = process.env.KERBEROS_PASSWORD || 'Password01'; // const password = process.env.KERBEROS_PASSWORD || 'Password01';
Expand Down

0 comments on commit b365934

Please sign in to comment.