saml_camel 1.0.2 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e845e0da15a5db2349b6572ccdb63fc432caa961
|
4
|
+
data.tar.gz: 194faeb1fe2914fe1bb5ff83248cd5c45f09e958
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9d873a64b44da5816d20450df7fc9f0f202abe7f2986193c16abd4bf0c00f7ae94d792e43f81df36107a1fabb52de9d38b4189c4ab0c619f5ba53bdd737d01f
|
7
|
+
data.tar.gz: 36d2840f7e8ddd89f1e155634f172a3fa0583aa47e533108078086588d617a96bd8c73c8b592bb41fa07f95cb8a9650412626450471f8bdac4192435f621d0e1
|
@@ -6,6 +6,7 @@ require_dependency 'saml_camel/application_controller'
|
|
6
6
|
module SamlCamel::SamlService # rubocop:disable Style/ClassAndModuleChildren
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
|
+
|
9
10
|
def cache_available?(app_cache)
|
10
11
|
if app_cache
|
11
12
|
true
|
@@ -17,18 +18,36 @@ module SamlCamel::SamlService # rubocop:disable Style/ClassAndModuleChildren
|
|
17
18
|
|
18
19
|
# TODO: refactor
|
19
20
|
def saml_protect # rubocop:disable Metrics/MethodLength, Metrics/AbcSize:
|
21
|
+
|
22
|
+
#TODO move this
|
23
|
+
begin
|
24
|
+
settings = JSON.parse(File.read("config/saml/#{Rails.env}/settings.json"))
|
25
|
+
sp_debug = settings['settings']['debug']
|
26
|
+
rescue StandardError # rubocop:disable Lint/HandleExceptions
|
27
|
+
# rescue othewise the generator fails
|
28
|
+
end
|
29
|
+
|
20
30
|
user_cache = cache_available?(Rails.cache.fetch(session[:saml_session_id])) if session[:saml_session_id]
|
21
31
|
if session[:saml_session_id] && user_cache
|
32
|
+
SamlCamel::Logging.debug('Saml Session and User Cache Found.') if sp_debug
|
33
|
+
SamlCamel::Logging.debug("SAML session id: #{session[:saml_session_id]} | Cache: #{user_cache}") if sp_debug
|
22
34
|
sp = SamlCamel::ServiceProvider.new(
|
23
35
|
cache_permit_key: session[:saml_session_id].to_sym,
|
24
36
|
saml_attributes: session[:saml_attributes]
|
25
37
|
)
|
26
38
|
session[:sp_session] = sp.validate_sp_session(session[:sp_session], request.remote_ip)
|
27
39
|
unless session[:saml_response_success] || session[:sp_session]
|
40
|
+
SamlCamel::Logging.debug('SAML response not successful or no sp session not valid. Generating new request.') if sp_debug
|
41
|
+
SamlCamel::Logging.debug("SAML response: #{session[:saml_response_success]}") if sp_debug
|
42
|
+
SamlCamel::Logging.debug("SP session #{session[:sp_session]}") if sp_debug
|
43
|
+
|
28
44
|
saml_request_url = sp.generate_saml_request(request)
|
29
45
|
redirect_to(saml_request_url)
|
30
46
|
end
|
31
47
|
else
|
48
|
+
SamlCamel::Logging.debug('User Cache or saml session id not found. Generating new request.') if sp_debug
|
49
|
+
SamlCamel::Logging.debug("SAML session id: #{session[:saml_session_id]} | Cache: #{user_cache}") if sp_debug
|
50
|
+
|
32
51
|
session[:saml_session_id] = SamlCamel::ServiceProvider.generate_permit_key
|
33
52
|
saml_request_url = SamlCamel::ServiceProvider.new(
|
34
53
|
cache_permit_key: session[:saml_session_id].to_sym
|
@@ -45,6 +45,8 @@ module SamlCamel
|
|
45
45
|
if sp_session
|
46
46
|
# if the session has exceeded the allowed lifetime, remove session
|
47
47
|
if (Time.now - sp_session_init_time) > sp_lifetime.hour
|
48
|
+
SamlCamel::Logging.debug('Session has exceeded the allowed lifetime.') if SP_DEBUG
|
49
|
+
SamlCamel::Logging.debug("Current Time: #{Time.now} | Session Init: #{ sp_session_init_time}") if SP_DEBUG
|
48
50
|
SamlCamel::Logging.expired_session(@saml_attributes)
|
49
51
|
return nil
|
50
52
|
end
|
data/lib/saml_camel/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: saml_camel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 'Danai Adkisson '
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|