keycloak-service
公開メンバ関数 | 限定公開変数類 | 静的限定公開変数類 | 非公開変数類 | 全メンバ一覧
org.keycloak.services.resources.admin.AttackDetectionResource クラス
org.keycloak.services.resources.admin.AttackDetectionResource 連携図
Collaboration graph

公開メンバ関数

 AttackDetectionResource (AdminPermissionEvaluator auth, RealmModel realm, AdminEventBuilder adminEvent)
 
Map< String, Object > bruteForceUserStatus (@PathParam("userId") String userId)
 
void clearBruteForceForUser (@PathParam("userId") String userId)
 
void clearAllBruteForce ()
 

限定公開変数類

AdminPermissionEvaluator auth
 
RealmModel realm
 
KeycloakSession session
 
ClientConnection connection
 
HttpHeaders headers
 

静的限定公開変数類

static final Logger logger = Logger.getLogger(AttackDetectionResource.class)
 

非公開変数類

AdminEventBuilder adminEvent
 

詳解

Base resource class for the admin REST api of one realm

Attack Detection

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ AttackDetectionResource()

org.keycloak.services.resources.admin.AttackDetectionResource.AttackDetectionResource ( AdminPermissionEvaluator  auth,
RealmModel  realm,
AdminEventBuilder  adminEvent 
)
inline
65  {
66  this.auth = auth;
67  this.realm = realm;
68  this.adminEvent = adminEvent.realm(realm).resource(ResourceType.USER_LOGIN_FAILURE);
69  }
AdminEventBuilder adminEvent
Definition: AttackDetectionResource.java:54
RealmModel realm
Definition: AttackDetectionResource.java:53
RealmModel realm
Definition: AdminEventBuilder.java:47
AdminPermissionEvaluator auth
Definition: AttackDetectionResource.java:52

関数詳解

◆ bruteForceUserStatus()

Map<String, Object> org.keycloak.services.resources.admin.AttackDetectionResource.bruteForceUserStatus ( @PathParam("userId") String  userId)
inline

Get status of a username in brute force detection

引数
userId
戻り値
81  {
82  UserModel user = session.users().getUserById(userId, realm);
83  if (user == null) {
85  } else {
86  auth.users().requireView(user);
87  }
88 
89  Map<String, Object> data = new HashMap<>();
90  data.put("disabled", false);
91  data.put("numFailures", 0);
92  data.put("lastFailure", 0);
93  data.put("lastIPFailure", "n/a");
94  if (!realm.isBruteForceProtected()) return data;
95 
96 
97  UserLoginFailureModel model = session.sessions().getUserLoginFailure(realm, userId);
98  if (model == null) return data;
99 
100  boolean disabled;
101  if (user == null) {
102  disabled = Time.currentTime() < model.getFailedLoginNotBefore();
103  } else {
104  disabled = session.getProvider(BruteForceProtector.class).isTemporarilyDisabled(session, realm, user);
105  }
106  if (disabled) {
107  data.put("disabled", true);
108  }
109 
110  data.put("numFailures", model.getNumFailures());
111  data.put("lastFailure", model.getLastFailure());
112  data.put("lastIPFailure", model.getLastIPFailure());
113  return data;
114  }
RealmModel realm
Definition: AttackDetectionResource.java:53
KeycloakSession session
Definition: AttackDetectionResource.java:57
AdminPermissionEvaluator auth
Definition: AttackDetectionResource.java:52

◆ clearAllBruteForce()

void org.keycloak.services.resources.admin.AttackDetectionResource.clearAllBruteForce ( )
inline

Clear any user login failures for all users

This can release temporary disabled users

147  {
149 
150  session.sessions().removeAllUserLoginFailures(realm);
151  adminEvent.operation(OperationType.DELETE).resourcePath(session.getContext().getUri()).success();
152  }
AdminEventBuilder adminEvent
Definition: AttackDetectionResource.java:54
RealmModel realm
Definition: AttackDetectionResource.java:53
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
KeycloakSession session
Definition: AttackDetectionResource.java:57
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminPermissionEvaluator auth
Definition: AttackDetectionResource.java:52

◆ clearBruteForceForUser()

void org.keycloak.services.resources.admin.AttackDetectionResource.clearBruteForceForUser ( @PathParam("userId") String  userId)
inline

Clear any user login failures for the user

This can release temporary disabled user

引数
userId
125  {
126  UserModel user = session.users().getUserById(userId, realm);
127  if (user == null) {
129  } else {
130  auth.users().requireManage(user);
131  }
132  UserLoginFailureModel model = session.sessions().getUserLoginFailure(realm, userId);
133  if (model != null) {
134  session.sessions().removeUserLoginFailure(realm, userId);
135  adminEvent.operation(OperationType.DELETE).resourcePath(session.getContext().getUri()).success();
136  }
137  }
AdminEventBuilder adminEvent
Definition: AttackDetectionResource.java:54
RealmModel realm
Definition: AttackDetectionResource.java:53
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
KeycloakSession session
Definition: AttackDetectionResource.java:57
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminPermissionEvaluator auth
Definition: AttackDetectionResource.java:52

メンバ詳解

◆ adminEvent

AdminEventBuilder org.keycloak.services.resources.admin.AttackDetectionResource.adminEvent
private

◆ auth

AdminPermissionEvaluator org.keycloak.services.resources.admin.AttackDetectionResource.auth
protected

◆ connection

ClientConnection org.keycloak.services.resources.admin.AttackDetectionResource.connection
protected

◆ headers

HttpHeaders org.keycloak.services.resources.admin.AttackDetectionResource.headers
protected

◆ logger

final Logger org.keycloak.services.resources.admin.AttackDetectionResource.logger = Logger.getLogger(AttackDetectionResource.class)
staticprotected

◆ realm

RealmModel org.keycloak.services.resources.admin.AttackDetectionResource.realm
protected

◆ session

KeycloakSession org.keycloak.services.resources.admin.AttackDetectionResource.session
protected

このクラス詳解は次のファイルから抽出されました: