Class: RubySMB::Gss::Provider::Kerberos::Authenticator
- Inherits:
-
Authenticator::Base
- Object
- Authenticator::Base
- RubySMB::Gss::Provider::Kerberos::Authenticator
- Defined in:
- lib/ruby_smb/gss/provider/kerberos.rb
Instance Attribute Summary collapse
-
#mech_token ⇒ String?
readonly
The most recent mechanism token received from the client.
Instance Method Summary collapse
Instance Attribute Details
#mech_token ⇒ String? (readonly)
Returns the most recent mechanism token received from the client.
107 108 109 |
# File 'lib/ruby_smb/gss/provider/kerberos.rb', line 107 def mech_token @mech_token end |
Instance Method Details
#process(request_buffer = nil) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/ruby_smb/gss/provider/kerberos.rb', line 109 def process(request_buffer=nil) if request_buffer.nil? return Result.new(Gss.gss_neg_token_init(@provider.mech_types), WindowsError::NTStatus::STATUS_SUCCESS) end token = extract_mech_token(request_buffer) if token.nil? logger.warn('Received a Kerberos request carrying no mechanism token') return end @mech_token = token result = @provider.on_mech_token(token, self) # a handler must return a Result: the session setup path calls nt_status on whatever comes back, so # anything else (a missing handler, or a handler that returns e.g. a boolean) is refused here rather # than handed on to crash the caller return result if result.is_a?(Result) Result.new(nil, WindowsError::NTStatus::STATUS_LOGON_FAILURE) end |
#reset! ⇒ Object
101 102 103 104 |
# File 'lib/ruby_smb/gss/provider/kerberos.rb', line 101 def reset! super @mech_token = nil end |