Skip to content

Commit

Permalink
KEYCLOAK-1542 - rewrote showing info from providers to be generic
Browse files Browse the repository at this point in the history
  • Loading branch information
velias committed Jul 23, 2015
1 parent 7e41b8d commit ee57c79
Show file tree
Hide file tree
Showing 17 changed files with 556 additions and 441 deletions.
Expand Up @@ -6,20 +6,19 @@
import org.keycloak.connections.jpa.updater.JpaUpdaterProvider;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.provider.ProviderOperationalInfo;

import javax.naming.InitialContext;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.sql.DataSource;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
Expand All @@ -33,7 +32,7 @@ public class DefaultJpaConnectionProviderFactory implements JpaConnectionProvide

private Config.Scope config;

private DatabaseInfo databaseInfo;
private Map<String,String> operationalInfo;

@Override
public JpaConnectionProvider create(KeycloakSession session) {
Expand Down Expand Up @@ -127,7 +126,7 @@ private void lazyInit(KeycloakSession session) {

connection = getConnection();
try{
prepareDatabaseInfo(connection);
prepareOperationalInfo(connection);

if (databaseSchema != null) {
logger.trace("Updating database");
Expand Down Expand Up @@ -180,16 +179,16 @@ private void lazyInit(KeycloakSession session) {
}
}

protected void prepareDatabaseInfo(Connection connection) {
protected void prepareOperationalInfo(Connection connection) {
try {
databaseInfo = new DatabaseInfo();
operationalInfo = new LinkedHashMap<>();
DatabaseMetaData md = connection.getMetaData();
databaseInfo.databaseDriver = md.getDriverName() + " " + md.getDriverVersion();
databaseInfo.databaseProduct = md.getDatabaseProductName() + " " + md.getDatabaseProductVersion();
databaseInfo.databaseUser = md.getUserName();
databaseInfo.jdbcUrl = md.getURL();
operationalInfo.put("databaseUrl",md.getURL());
operationalInfo.put("databaseUser", md.getUserName());
operationalInfo.put("databaseProduct", md.getDatabaseProductName() + " " + md.getDatabaseProductVersion());
operationalInfo.put("databaseDriver", md.getDriverName() + " " + md.getDriverVersion());
} catch (SQLException e) {
logger.warn("Unable to get database info due " + e.getMessage());
logger.warn("Unable to prepare operational info due database exception: " + e.getMessage());
}
}

Expand All @@ -209,31 +208,8 @@ private Connection getConnection() {
}

@Override
public DatabaseInfo getOperationalInfo() {
return databaseInfo;
}

public static class DatabaseInfo implements ProviderOperationalInfo {
protected String jdbcUrl;
protected String databaseUser;
protected String databaseProduct;
protected String databaseDriver;

public String getJdbcUrl() {
return jdbcUrl;
}

public String getDatabaseDriver() {
return databaseDriver;
}

public String getDatabaseUser() {
return databaseUser;
}

public String getDatabaseProduct() {
return databaseProduct;
}
public Map<String,String> getOperationalInfo() {
return operationalInfo;
}

}
@@ -1,10 +1,10 @@
package org.keycloak.connections.jpa;

import org.keycloak.provider.MonitorableProviderFactory;
import org.keycloak.provider.ServerInfoAwareProviderFactory;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public interface JpaConnectionProviderFactory extends MonitorableProviderFactory<JpaConnectionProvider> {
public interface JpaConnectionProviderFactory extends ServerInfoAwareProviderFactory<JpaConnectionProvider> {

}
Expand Up @@ -14,13 +14,13 @@
import org.keycloak.connections.mongo.updater.MongoUpdaterProvider;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.provider.ProviderOperationalInfo;

import javax.net.ssl.SSLSocketFactory;

import java.lang.reflect.Method;
import java.net.UnknownHostException;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
Expand Down Expand Up @@ -61,7 +61,7 @@ public class DefaultMongoConnectionFactoryProvider implements MongoConnectionPro
private DB db;
protected Config.Scope config;

private MongoDbInfo mongoDbInfo;
private Map<String,String> operationalInfo;

@Override
public MongoConnectionProvider create(KeycloakSession session) {
Expand Down Expand Up @@ -165,11 +165,11 @@ protected MongoClient createMongoClient() throws UnknownHostException {
client = new MongoClient(new ServerAddress(host, port), clientOptions);
}

mongoDbInfo = new MongoDbInfo();
mongoDbInfo.driverVersion = client.getVersion();
mongoDbInfo.address = client.getAddress().toString();
mongoDbInfo.database = dbName;
mongoDbInfo.user = user;
operationalInfo = new LinkedHashMap<>();
operationalInfo.put("mongoServerAddress", client.getAddress().toString());
operationalInfo.put("mongoDatabaseName", dbName);
operationalInfo.put("mongoUser", user);
operationalInfo.put("mongoDriverVersion", client.getVersion());

logger.debugv("Initialized mongo model. host: %s, port: %d, db: %s", host, port, dbName);
return client;
Expand Down Expand Up @@ -219,31 +219,8 @@ protected void checkIntOption(String optionName, MongoClientOptions.Builder buil
}

@Override
public ProviderOperationalInfo getOperationalInfo() {
return mongoDbInfo;
public Map<String,String> getOperationalInfo() {
return operationalInfo;
}

public static class MongoDbInfo implements ProviderOperationalInfo {

public String address;
public String database;
public String driverVersion;
public String user;

public String getAddress() {
return address;
}

public String getDatabase() {
return database;
}

public String getDriverVersion() {
return driverVersion;
}

public String getUser() {
return user;
}
}
}
@@ -1,9 +1,9 @@
package org.keycloak.connections.mongo;

import org.keycloak.provider.MonitorableProviderFactory;
import org.keycloak.provider.ServerInfoAwareProviderFactory;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public interface MongoConnectionProviderFactory extends MonitorableProviderFactory<MongoConnectionProvider> {
public interface MongoConnectionProviderFactory extends ServerInfoAwareProviderFactory<MongoConnectionProvider> {
}
Expand Up @@ -1133,7 +1133,13 @@ module.config([ '$routeProvider', function($routeProvider) {
controller : 'AuthenticationConfigCreateCtrl'
})
.when('/server-info', {
templateUrl : resourceUrl + '/partials/server-info.html'
templateUrl : resourceUrl + '/partials/server-info.html',
resolve : {
serverInfoPage : function(ServerInfoPageLoader) {
return ServerInfoPageLoader();
}
},
controller : 'ServerInfoPageCtrl'
})
.when('/logout', {
templateUrl : resourceUrl + '/partials/home.html',
Expand Down Expand Up @@ -1867,4 +1873,4 @@ module.directive( 'kcOpen', function ( $location ) {
});
});
};
});
});
Expand Up @@ -125,6 +125,13 @@ module.controller('RealmTabCtrl', function(Dialog, $scope, Current, Realm, Notif
};
});

module.controller('ServerInfoPageCtrl', function($scope, ServerInfoPage) {
$scope.serverInfoPage = ServerInfoPage.get();
$scope.serverInfoPageUpdate = function() {
$scope.serverInfoPage = ServerInfoPage.get();
};
});

module.controller('RealmListCtrl', function($scope, Realm, Current) {
$scope.realms = Realm.query();
Current.realms = $scope.realms;
Expand Down
Expand Up @@ -39,6 +39,10 @@ module.factory('ServerInfoLoader', function(Loader, ServerInfo, $q) {
return Loader.get(ServerInfo);
});

module.factory('ServerInfoPageLoader', function(Loader, ServerInfoPage, $q) {
return Loader.get(ServerInfoPage);
});

module.factory('RealmLoader', function(Loader, Realm, $route, $q) {
return Loader.get(Realm, function() {
return {
Expand Down
Expand Up @@ -219,6 +219,9 @@ module.factory('ServerInfo', function($resource) {
return $resource(authUrl + '/admin/serverinfo');
});

module.factory('ServerInfoPage', function($resource) {
return $resource(authUrl + '/admin/serverinfopage');
});


module.factory('ClientProtocolMapper', function($resource) {
Expand Down

0 comments on commit ee57c79

Please sign in to comment.