Started UserSessionProvider
This commit is contained in:
1 parent
38abcd4a90
commit
86671a2354
106 files changed
+1354
-2368
No files matched your search
+1
-12
@@ -5,7 +5,6 @@ import org.keycloak.models.KeycloakSession;
|
||||
import org.keycloak.models.ModelProvider;
|
||||
import org.keycloak.models.RealmModel;
|
||||
import org.keycloak.models.RoleModel;
|
||||
import org.keycloak.models.UserSessionModel;
|
||||
import org.keycloak.models.entities.ClientEntity;
|
||||
import org.keycloak.models.mongo.api.MongoIdentifiableEntity;
|
||||
import org.keycloak.models.mongo.api.context.MongoStoreInvocationContext;
|
||||
@@ -32,7 +31,7 @@ public abstract class ClientAdapter<T extends MongoIdentifiableEntity> extends A
|
||||
this.clientEntity = clientEntity;
|
||||
this.realm = realm;
|
||||
this.session = session;
|
||||
this.model = session.getModel();
|
||||
this.model = session.model();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -174,16 +173,6 @@ public abstract class ClientAdapter<T extends MongoIdentifiableEntity> extends A
|
||||
updateMongoEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<UserSessionModel> getUserSessions() {
|
||||
return model.getUserSessions(realm, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getActiveUserSessions() {
|
||||
return model.getActiveUserSessions(realm, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<RoleModel> getScopeMappings() {
|
||||
Set<RoleModel> result = new HashSet<RoleModel>();
|
||||
|
||||
+133
-133
@@ -325,138 +325,138 @@ public class MongoModelProvider implements ModelProvider {
|
||||
|
||||
return new OAuthClientAdapter(session, realm, clientEntity, invocationContext);
|
||||
}
|
||||
//
|
||||
// @Override
|
||||
// public UsernameLoginFailureModel getUserLoginFailure(String username, RealmModel realm) {
|
||||
// DBObject query = new QueryBuilder()
|
||||
// .and("username").is(username)
|
||||
// .and("realmId").is(realm.getId())
|
||||
// .get();
|
||||
// MongoUsernameLoginFailureEntity user = getMongoStore().loadSingleEntity(MongoUsernameLoginFailureEntity.class, query, invocationContext);
|
||||
//
|
||||
// if (user == null) {
|
||||
// return null;
|
||||
// } else {
|
||||
// return new UsernameLoginFailureAdapter(invocationContext, user);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public UsernameLoginFailureModel addUserLoginFailure(String username, RealmModel realm) {
|
||||
// UsernameLoginFailureModel userLoginFailure = getUserLoginFailure(username, realm);
|
||||
// if (userLoginFailure != null) {
|
||||
// return userLoginFailure;
|
||||
// }
|
||||
//
|
||||
// MongoUsernameLoginFailureEntity userEntity = new MongoUsernameLoginFailureEntity();
|
||||
// userEntity.setUsername(username);
|
||||
// userEntity.setRealmId(realm.getId());
|
||||
//
|
||||
// getMongoStore().insertEntity(userEntity, invocationContext);
|
||||
// return new UsernameLoginFailureAdapter(invocationContext, userEntity);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<UsernameLoginFailureModel> getAllUserLoginFailures(RealmModel realm) {
|
||||
// DBObject query = new QueryBuilder()
|
||||
// .and("realmId").is(realm.getId())
|
||||
// .get();
|
||||
// List<MongoUsernameLoginFailureEntity> failures = getMongoStore().loadEntities(MongoUsernameLoginFailureEntity.class, query, invocationContext);
|
||||
//
|
||||
// List<UsernameLoginFailureModel> result = new ArrayList<UsernameLoginFailureModel>();
|
||||
//
|
||||
// if (failures == null) return result;
|
||||
// for (MongoUsernameLoginFailureEntity failure : failures) {
|
||||
// result.add(new UsernameLoginFailureAdapter(invocationContext, failure));
|
||||
// }
|
||||
//
|
||||
// return result;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public UsernameLoginFailureModel getUserLoginFailure(String username, RealmModel realm) {
|
||||
DBObject query = new QueryBuilder()
|
||||
.and("username").is(username)
|
||||
.and("realmId").is(realm.getId())
|
||||
.get();
|
||||
MongoUsernameLoginFailureEntity user = getMongoStore().loadSingleEntity(MongoUsernameLoginFailureEntity.class, query, invocationContext);
|
||||
|
||||
if (user == null) {
|
||||
return null;
|
||||
} else {
|
||||
return new UsernameLoginFailureAdapter(invocationContext, user);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public UsernameLoginFailureModel addUserLoginFailure(String username, RealmModel realm) {
|
||||
UsernameLoginFailureModel userLoginFailure = getUserLoginFailure(username, realm);
|
||||
if (userLoginFailure != null) {
|
||||
return userLoginFailure;
|
||||
}
|
||||
|
||||
MongoUsernameLoginFailureEntity userEntity = new MongoUsernameLoginFailureEntity();
|
||||
userEntity.setUsername(username);
|
||||
userEntity.setRealmId(realm.getId());
|
||||
|
||||
getMongoStore().insertEntity(userEntity, invocationContext);
|
||||
return new UsernameLoginFailureAdapter(invocationContext, userEntity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UsernameLoginFailureModel> getAllUserLoginFailures(RealmModel realm) {
|
||||
DBObject query = new QueryBuilder()
|
||||
.and("realmId").is(realm.getId())
|
||||
.get();
|
||||
List<MongoUsernameLoginFailureEntity> failures = getMongoStore().loadEntities(MongoUsernameLoginFailureEntity.class, query, invocationContext);
|
||||
|
||||
List<UsernameLoginFailureModel> result = new ArrayList<UsernameLoginFailureModel>();
|
||||
|
||||
if (failures == null) return result;
|
||||
for (MongoUsernameLoginFailureEntity failure : failures) {
|
||||
result.add(new UsernameLoginFailureAdapter(invocationContext, failure));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserSessionModel createUserSession(RealmModel realm, UserModel user, String ipAddress) {
|
||||
MongoUserSessionEntity entity = new MongoUserSessionEntity();
|
||||
entity.setRealmId(realm.getId());
|
||||
entity.setUser(user.getId());
|
||||
entity.setIpAddress(ipAddress);
|
||||
|
||||
int currentTime = Time.currentTime();
|
||||
|
||||
entity.setStarted(currentTime);
|
||||
entity.setLastSessionRefresh(currentTime);
|
||||
|
||||
getMongoStore().insertEntity(entity, invocationContext);
|
||||
return new UserSessionAdapter(entity, realm, invocationContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserSessionModel getUserSession(String id, RealmModel realm) {
|
||||
MongoUserSessionEntity entity = getMongoStore().loadEntity(MongoUserSessionEntity.class, id, invocationContext);
|
||||
if (entity == null) {
|
||||
return null;
|
||||
} else {
|
||||
return new UserSessionAdapter(entity, realm, invocationContext);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserSessionModel> getUserSessions(UserModel user, RealmModel realm) {
|
||||
DBObject query = new BasicDBObject("user", user.getId());
|
||||
List<UserSessionModel> sessions = new LinkedList<UserSessionModel>();
|
||||
for (MongoUserSessionEntity e : getMongoStore().loadEntities(MongoUserSessionEntity.class, query, invocationContext)) {
|
||||
sessions.add(new UserSessionAdapter(e, realm, invocationContext));
|
||||
}
|
||||
return sessions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<UserSessionModel> getUserSessions(RealmModel realm, ClientModel client) {
|
||||
DBObject query = new QueryBuilder()
|
||||
.and("associatedClientIds").is(client.getId())
|
||||
.get();
|
||||
List<MongoUserSessionEntity> sessions = getMongoStore().loadEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
|
||||
Set<UserSessionModel> result = new HashSet<UserSessionModel>();
|
||||
for (MongoUserSessionEntity session : sessions) {
|
||||
result.add(new UserSessionAdapter(session, realm, invocationContext));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getActiveUserSessions(RealmModel realm, ClientModel client) {
|
||||
return getUserSessions(realm, client).size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeUserSession(UserSessionModel session) {
|
||||
getMongoStore().removeEntity(((UserSessionAdapter) session).getMongoEntity(), invocationContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeUserSessions(RealmModel realm, UserModel user) {
|
||||
DBObject query = new BasicDBObject("user", user.getId());
|
||||
getMongoStore().removeEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeUserSessions(RealmModel realm) {
|
||||
DBObject query = new BasicDBObject("realmId", realm.getId());
|
||||
getMongoStore().removeEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeExpiredUserSessions(RealmModel realm) {
|
||||
int currentTime = Time.currentTime();
|
||||
DBObject query = new QueryBuilder()
|
||||
.and("started").lessThan(currentTime - realm.getSsoSessionMaxLifespan())
|
||||
.get();
|
||||
|
||||
getMongoStore().removeEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
query = new QueryBuilder()
|
||||
.and("lastSessionRefresh").lessThan(currentTime - realm.getSsoSessionIdleTimeout())
|
||||
.get();
|
||||
|
||||
getMongoStore().removeEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
}
|
||||
// @Override
|
||||
// public UserSessionModel createUserSession(RealmModel realm, UserModel user, String ipAddress) {
|
||||
// MongoUserSessionEntity entity = new MongoUserSessionEntity();
|
||||
// entity.setRealmId(realm.getId());
|
||||
// entity.setUser(user.getId());
|
||||
// entity.setIpAddress(ipAddress);
|
||||
//
|
||||
// int currentTime = Time.currentTime();
|
||||
//
|
||||
// entity.setStarted(currentTime);
|
||||
// entity.setLastSessionRefresh(currentTime);
|
||||
//
|
||||
// getMongoStore().insertEntity(entity, invocationContext);
|
||||
// return new UserSessionAdapter(entity, realm, invocationContext);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public UserSessionModel getUserSession(String id, RealmModel realm) {
|
||||
// MongoUserSessionEntity entity = getMongoStore().loadEntity(MongoUserSessionEntity.class, id, invocationContext);
|
||||
// if (entity == null) {
|
||||
// return null;
|
||||
// } else {
|
||||
// return new UserSessionAdapter(entity, realm, invocationContext);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<UserSessionModel> getUserSessions(UserModel user, RealmModel realm) {
|
||||
// DBObject query = new BasicDBObject("user", user.getId());
|
||||
// List<UserSessionModel> sessions = new LinkedList<UserSessionModel>();
|
||||
// for (MongoUserSessionEntity e : getMongoStore().loadEntities(MongoUserSessionEntity.class, query, invocationContext)) {
|
||||
// sessions.add(new UserSessionAdapter(e, realm, invocationContext));
|
||||
// }
|
||||
// return sessions;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Set<UserSessionModel> getUserSessions(RealmModel realm, ClientModel client) {
|
||||
// DBObject query = new QueryBuilder()
|
||||
// .and("associatedClientIds").is(client.getId())
|
||||
// .get();
|
||||
// List<MongoUserSessionEntity> sessions = getMongoStore().loadEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
//
|
||||
// Set<UserSessionModel> result = new HashSet<UserSessionModel>();
|
||||
// for (MongoUserSessionEntity session : sessions) {
|
||||
// result.add(new UserSessionAdapter(session, realm, invocationContext));
|
||||
// }
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getActiveUserSessions(RealmModel realm, ClientModel client) {
|
||||
// return getUserSessions(realm, client).size();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void removeUserSession(UserSessionModel session) {
|
||||
// getMongoStore().removeEntity(((UserSessionAdapter) session).getMongoEntity(), invocationContext);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void removeUserSessions(RealmModel realm, UserModel user) {
|
||||
// DBObject query = new BasicDBObject("user", user.getId());
|
||||
// getMongoStore().removeEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void removeUserSessions(RealmModel realm) {
|
||||
// DBObject query = new BasicDBObject("realmId", realm.getId());
|
||||
// getMongoStore().removeEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void removeExpiredUserSessions(RealmModel realm) {
|
||||
// int currentTime = Time.currentTime();
|
||||
// DBObject query = new QueryBuilder()
|
||||
// .and("started").lessThan(currentTime - realm.getSsoSessionMaxLifespan())
|
||||
// .get();
|
||||
//
|
||||
// getMongoStore().removeEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
// query = new QueryBuilder()
|
||||
// .and("lastSessionRefresh").lessThan(currentTime - realm.getSsoSessionIdleTimeout())
|
||||
// .get();
|
||||
//
|
||||
// getMongoStore().removeEntities(MongoUserSessionEntity.class, query, invocationContext);
|
||||
// }
|
||||
}
|
||||
+1
-53
@@ -18,7 +18,6 @@ import org.keycloak.models.SocialLinkModel;
|
||||
import org.keycloak.models.UserCredentialModel;
|
||||
import org.keycloak.models.UserCredentialValueModel;
|
||||
import org.keycloak.models.UserModel;
|
||||
import org.keycloak.models.UserSessionModel;
|
||||
import org.keycloak.models.UsernameLoginFailureModel;
|
||||
import org.keycloak.models.entities.AuthenticationProviderEntity;
|
||||
import org.keycloak.models.entities.RequiredCredentialEntity;
|
||||
@@ -63,7 +62,7 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
|
||||
super(invocationContext);
|
||||
this.realm = realmEntity;
|
||||
this.session = session;
|
||||
this.model = session.getModel();
|
||||
this.model = session.model();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -445,22 +444,6 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
|
||||
return model.getUserByUsername(name, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UsernameLoginFailureModel getUserLoginFailure(String name) {
|
||||
return model.getUserLoginFailure(name, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UsernameLoginFailureModel addUserLoginFailure(String username) {
|
||||
return model.addUserLoginFailure(username, this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<UsernameLoginFailureModel> getAllUserLoginFailures() {
|
||||
return model.getAllUserLoginFailures(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserModel getUserByEmail(String email) {
|
||||
return model.getUserByEmail(email, this);
|
||||
@@ -1013,41 +996,6 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
|
||||
return realm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserSessionModel createUserSession(UserModel user, String ipAddress) {
|
||||
return model.createUserSession(this, user, ipAddress);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserSessionModel getUserSession(String id) {
|
||||
return model.getUserSession(id, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserSessionModel> getUserSessions(UserModel user) {
|
||||
return model.getUserSessions(user, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeUserSession(UserSessionModel session) {
|
||||
this.model.removeUserSession(session);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeUserSessions(UserModel user) {
|
||||
this.model.removeUserSessions(this, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeUserSessions() {
|
||||
this.model.removeUserSessions(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeExpiredUserSessions() {
|
||||
this.model.removeExpiredUserSessions(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
|
||||
Reference in new issue
Block a user