Module: Himari::Storages::Base
- Included in:
- Filesystem, Memory
- Defined in:
- lib/himari/storages/base.rb
Defined Under Namespace
Classes: Conflict
Instance Method Summary collapse
- #delete_authorization(authz) ⇒ Object
- #delete_authorization_by_code(code) ⇒ Object
- #delete_dynamic_client(client) ⇒ Object
- #delete_dynamic_client_by_id(id) ⇒ Object
- #delete_refresh_token(token) ⇒ Object
- #delete_refresh_token_by_handle(handle) ⇒ Object
- #delete_session(session) ⇒ Object
- #delete_session_by_handle(handle) ⇒ Object
- #delete_token(token) ⇒ Object
- #delete_token_by_handle(handle) ⇒ Object
- #find_authorization(code) ⇒ Object
- #find_dynamic_client(id) ⇒ Object
- #find_refresh_token(handle) ⇒ Object
- #find_session(handle) ⇒ Object
- #find_token(handle) ⇒ Object
- #put_authorization(authz, overwrite: false) ⇒ Object
- #put_dynamic_client(client, overwrite: false) ⇒ Object
- #put_refresh_token(token, overwrite: false, if_version: nil) ⇒ Object
- #put_session(session, overwrite: false) ⇒ Object
- #put_token(token, overwrite: false) ⇒ Object
Instance Method Details
#delete_authorization(authz) ⇒ Object
23 24 25 |
# File 'lib/himari/storages/base.rb', line 23 def (authz) (authz.code) end |
#delete_authorization_by_code(code) ⇒ Object
27 28 29 |
# File 'lib/himari/storages/base.rb', line 27 def (code) delete('authz', code) end |
#delete_dynamic_client(client) ⇒ Object
81 82 83 |
# File 'lib/himari/storages/base.rb', line 81 def delete_dynamic_client(client) delete_dynamic_client_by_id(client.id) end |
#delete_dynamic_client_by_id(id) ⇒ Object
85 86 87 |
# File 'lib/himari/storages/base.rb', line 85 def delete_dynamic_client_by_id(id) delete('dynamic_client', id) end |
#delete_refresh_token(token) ⇒ Object
60 61 62 |
# File 'lib/himari/storages/base.rb', line 60 def delete_refresh_token(token) delete_refresh_token_by_handle(token.handle) end |
#delete_refresh_token_by_handle(handle) ⇒ Object
64 65 66 |
# File 'lib/himari/storages/base.rb', line 64 def delete_refresh_token_by_handle(handle) delete('refresh', handle) end |
#delete_session(session) ⇒ Object
98 99 100 |
# File 'lib/himari/storages/base.rb', line 98 def delete_session(session) delete_session_by_handle(session.handle) end |
#delete_session_by_handle(handle) ⇒ Object
102 103 104 |
# File 'lib/himari/storages/base.rb', line 102 def delete_session_by_handle(handle) delete('session', handle) end |
#delete_token(token) ⇒ Object
41 42 43 |
# File 'lib/himari/storages/base.rb', line 41 def delete_token(token) (token.handle) end |
#delete_token_by_handle(handle) ⇒ Object
45 46 47 |
# File 'lib/himari/storages/base.rb', line 45 def delete_token_by_handle(handle) delete('token', handle) end |
#find_authorization(code) ⇒ Object
14 15 16 17 |
# File 'lib/himari/storages/base.rb', line 14 def (code) content = read('authz', code) content && AuthorizationCode.new(**content) end |
#find_dynamic_client(id) ⇒ Object
68 69 70 71 72 73 74 75 |
# File 'lib/himari/storages/base.rb', line 68 def find_dynamic_client(id) # ids are server-generated url-safe base64; reject anything else before it reaches a # storage key (defense-in-depth against path traversal on filesystem-backed storage). return unless id.is_a?(String) && id.match?(/\A[A-Za-z0-9_-]+\z/) content = read('dynamic_client', id) content && DynamicClientRegistration.from_json(content) end |
#find_refresh_token(handle) ⇒ Object
49 50 51 52 |
# File 'lib/himari/storages/base.rb', line 49 def find_refresh_token(handle) content = read('refresh', handle) content && RefreshToken.new(**content) end |
#find_session(handle) ⇒ Object
89 90 91 92 |
# File 'lib/himari/storages/base.rb', line 89 def find_session(handle) content = read('session', handle) content && SessionData.new(**content) end |
#find_token(handle) ⇒ Object
31 32 33 34 35 |
# File 'lib/himari/storages/base.rb', line 31 def find_token(handle) content = read('token', handle) content[:handle] = content.delete(:handle) if content.key?(:handler) # compat content && AccessToken.new(**content) end |
#put_authorization(authz, overwrite: false) ⇒ Object
19 20 21 |
# File 'lib/himari/storages/base.rb', line 19 def (authz, overwrite: false) write('authz', authz.code, authz.as_json, overwrite: overwrite) end |
#put_dynamic_client(client, overwrite: false) ⇒ Object
77 78 79 |
# File 'lib/himari/storages/base.rb', line 77 def put_dynamic_client(client, overwrite: false) write('dynamic_client', client.id, client.as_json, overwrite: overwrite) end |
#put_refresh_token(token, overwrite: false, if_version: nil) ⇒ Object
56 57 58 |
# File 'lib/himari/storages/base.rb', line 56 def put_refresh_token(token, overwrite: false, if_version: nil) write('refresh', token.handle, token.as_json, overwrite: overwrite, if_version: if_version) end |
#put_session(session, overwrite: false) ⇒ Object
94 95 96 |
# File 'lib/himari/storages/base.rb', line 94 def put_session(session, overwrite: false) write('session', session.handle, session.as_json, overwrite: overwrite) end |
#put_token(token, overwrite: false) ⇒ Object
37 38 39 |
# File 'lib/himari/storages/base.rb', line 37 def put_token(token, overwrite: false) write('token', token.handle, token.as_json, overwrite: overwrite) end |