Class: KeycloakAdmin::AttackDetectionClient

Inherits:
Client
  • Object
show all
Defined in:
lib/keycloak-admin/client/attack_detection_client.rb

Instance Method Summary collapse

Methods inherited from Client

#create_payload, #created_id, #current_token, #execute_http, #headers, #server_url

Constructor Details

#initialize(configuration, realm_client) ⇒ AttackDetectionClient

Returns a new instance of AttackDetectionClient.

Raises:

  • (ArgumentError)


4
5
6
7
8
# File 'lib/keycloak-admin/client/attack_detection_client.rb', line 4

def initialize(configuration, realm_client)
  super(configuration)
  raise ArgumentError.new("realm must be defined") unless realm_client.name_defined?
  @realm_client = realm_client
end

Instance Method Details

#brute_force_url(user_id = nil) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/keycloak-admin/client/attack_detection_client.rb', line 35

def brute_force_url(user_id = nil)
  if user_id
    "#{@realm_client.realm_admin_url}/attack-detection/brute-force/users/#{encode_segment(user_id)}"
  else
    "#{@realm_client.realm_admin_url}/attack-detection/brute-force/users"
  end
end

#lock_status(user_id) ⇒ Object

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
# File 'lib/keycloak-admin/client/attack_detection_client.rb', line 10

def lock_status(user_id)
  raise ArgumentError.new("user_id must be defined") if user_id.nil?

  response = execute_http do
    resource(brute_force_url(user_id)).get(headers)
  end
  AttackDetectionRepresentation.from_hash(JSON.parse(response))
end

#unlock_user(user_id) ⇒ Object

Raises:

  • (ArgumentError)


19
20
21
22
23
24
25
26
# File 'lib/keycloak-admin/client/attack_detection_client.rb', line 19

def unlock_user(user_id)
  raise ArgumentError.new("user_id must be defined") if user_id.nil?

  execute_http do
    resource(brute_force_url(user_id)).delete(headers)
  end
  true
end

#unlock_usersObject



28
29
30
31
32
33
# File 'lib/keycloak-admin/client/attack_detection_client.rb', line 28

def unlock_users
  execute_http do
    resource(brute_force_url).delete(headers)
  end
  true
end