@Override public UserModel register(RealmModel realm, UserModel user) { users.put(user.getUsername(), user); return user; }
@Override public boolean isValid(RealmModel realm, UserModel local) { String username = local.getUsername(); return users.containsKey(username); }
@Override public Set<String> getSupportedCredentialTypes(UserModel user) { // Just user "test-user" is able to validate password with this federationProvider if (user.getUsername().equals("test-user")) { return Collections.singleton(UserCredentialModel.PASSWORD); } else { return Collections.emptySet(); } }
@Override public Error validate(KeycloakSession session, UserModel user, String password) { return validate(session, user.getUsername(), password); } }
@Override public Error validate(KeycloakSession session, UserModel user, String password) { return validate(session, user.getUsername(), password); } }
@Override public String getUsername() { if (updated != null) return updated.getUsername(); return cached.getUsername(); }
@Override public Error validate(KeycloakSession session, UserModel user, String password) { return validate(session, user.getUsername(), password); } }
@Override public Error validate(KeycloakSession session, UserModel user, String password) { return validate(session, user.getUsername(), password); } }
@Override public Error validate(KeycloakSession session, UserModel user, String password) { return validate(session, user.getUsername(), password); } }
@Override public Error validate(KeycloakSession session, UserModel user, String password) { return validate(session, user.getUsername(), password); } }
@Override public String getUsername() { if (updated != null) return updated.getUsername(); return cached.getUsername(); }
@Override public boolean isValid(RealmModel realmModel, UserModel userModel, CredentialInput credentialInput) { String token = ((UserCredentialModel) credentialInput).getValue(); String userName = authenticateToken(token, client, httpClient); boolean authenticated = Objects.equals(userModel.getUsername(), userName); if(userName == null) { LOG.debug("User: " + userModel.getUsername() + " not authenticated for realm " + realmModel.getName()); } else if(!authenticated) { LOG.debug("Attempt to log in for user " + userModel.getUsername() + " in realm " + realmModel.getName() + " with token for " + userName); } return authenticated; }
@Override public boolean validCredentials(RealmModel realm, UserModel user, List<UserCredentialModel> input) { if (user.getUsername().equals("test-user") && input.size() == 1) { UserCredentialModel password = input.get(0); if (password.getType().equals(UserCredentialModel.PASSWORD)) { return "secret".equals(password.getValue()); } } return false; }
@Override public String getLoginUsername() { if (entity.getLoginUsername() == null) { // this is a hack so that UserModel doesn't have to be available when offline token is imported. // see related JIRA - KEYCLOAK-5350 and corresponding test return getUser().getUsername(); } else { return entity.getLoginUsername(); } }
@Override public boolean isValid(RealmModel realm, UserModel user, CredentialInput input) { if (!(input instanceof UserCredentialModel)) return false; if (input.getType().equals(UserCredentialModel.PASSWORD) && !session.userCredentialManager().isConfiguredLocally(realm, user, UserCredentialModel.PASSWORD)) { return validPassword(user.getUsername(), ((UserCredentialModel)input).getValue()); } else { return false; // invalid cred type } }
AuthInfo (Event event, KeycloakSession keycloakSession) { fields = new String[] { event.getDetails() != null ? event.getDetails().get("username") : keycloakSession.users().getUserById(event.getUserId(), keycloakSession.getContext().getRealm()) .getUsername(), event.getIpAddress() }; } AuthInfo(String s) {
AuthInfo (Event event, KeycloakSession keycloakSession) { fields = new String[] { event.getDetails() != null ? event.getDetails().get("username") : keycloakSession.users().getUserById(event.getUserId(), keycloakSession.getContext().getRealm()) .getUsername(), event.getIpAddress() }; } AuthInfo(String s) {
@Override public void onUserRemoved(RealmModel realm, UserModel user) { removeUserSessions(realm, user, true); removeUserSessions(realm, user, false); loginFailureCache.remove(new LoginFailureKey(realm.getId(), user.getUsername())); loginFailureCache.remove(new LoginFailureKey(realm.getId(), user.getEmail())); }
AuthInfo (AdminEvent adminEvent, KeycloakSession keycloakSession) { AuthDetails authDetails = adminEvent.getAuthDetails(); fields = new String[] { keycloakSession.users().getUserById(authDetails.getUserId(), keycloakSession.getContext().getRealm()) .getUsername(), authDetails.getIpAddress(), adminEvent.getResourceType().name(), adminEvent.getResourcePath(), adminEvent.getRepresentation() }; } AuthInfo(String s) {
AuthInfo (AdminEvent adminEvent, KeycloakSession keycloakSession) { AuthDetails authDetails = adminEvent.getAuthDetails(); fields = new String[] { keycloakSession.users().getUserById(authDetails.getUserId(), keycloakSession.getContext().getRealm()) .getUsername(), authDetails.getIpAddress(), adminEvent.getOperationType().name() + " " + adminEvent.getResourceType().name(), adminEvent.getResourcePath(), adminEvent.getRepresentation() }; } AuthInfo(String s) {