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 1c142cb commit 99f74ac
Show file tree
Hide file tree
Showing 17 changed files with 555 additions and 440 deletions.
Expand Up @@ -6,20 +6,19 @@
import org.keycloak.connections.jpa.updater.JpaUpdaterProvider; import org.keycloak.connections.jpa.updater.JpaUpdaterProvider;
import org.keycloak.models.KeycloakSession; import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory; import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.provider.ProviderOperationalInfo;


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

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


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


private Config.Scope config; private Config.Scope config;


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


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


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


if (databaseSchema != null) { if (databaseSchema != null) {
logger.trace("Updating database"); 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 { try {
databaseInfo = new DatabaseInfo(); operationalInfo = new LinkedHashMap<>();
DatabaseMetaData md = connection.getMetaData(); DatabaseMetaData md = connection.getMetaData();
databaseInfo.databaseDriver = md.getDriverName() + " " + md.getDriverVersion(); operationalInfo.put("databaseUrl",md.getURL());
databaseInfo.databaseProduct = md.getDatabaseProductName() + " " + md.getDatabaseProductVersion(); operationalInfo.put("databaseUser", md.getUserName());
databaseInfo.databaseUser = md.getUserName(); operationalInfo.put("databaseProduct", md.getDatabaseProductName() + " " + md.getDatabaseProductVersion());
databaseInfo.jdbcUrl = md.getURL(); operationalInfo.put("databaseDriver", md.getDriverName() + " " + md.getDriverVersion());
} catch (SQLException e) { } 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 @Override
public DatabaseInfo getOperationalInfo() { public Map<String,String> getOperationalInfo() {
return databaseInfo; return operationalInfo;
}

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;
}
} }


} }
@@ -1,10 +1,10 @@
package org.keycloak.connections.jpa; 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> * @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.connections.mongo.updater.MongoUpdaterProvider;
import org.keycloak.models.KeycloakSession; import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory; import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.provider.ProviderOperationalInfo;


import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.SSLSocketFactory;

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


/** /**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a> * @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; private DB db;
protected Config.Scope config; protected Config.Scope config;


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


@Override @Override
public MongoConnectionProvider create(KeycloakSession session) { 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); client = new MongoClient(new ServerAddress(host, port), clientOptions);
} }


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


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


@Override @Override
public ProviderOperationalInfo getOperationalInfo() { public Map<String,String> getOperationalInfo() {
return mongoDbInfo; 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; 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> * @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/ */
public interface MongoConnectionProviderFactory extends MonitorableProviderFactory<MongoConnectionProvider> { public interface MongoConnectionProviderFactory extends ServerInfoAwareProviderFactory<MongoConnectionProvider> {
} }
Expand Up @@ -1112,7 +1112,13 @@ module.config([ '$routeProvider', function($routeProvider) {
controller : 'AuthenticationConfigCreateCtrl' controller : 'AuthenticationConfigCreateCtrl'
}) })
.when('/server-info', { .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', { .when('/logout', {
templateUrl : resourceUrl + '/partials/home.html', templateUrl : resourceUrl + '/partials/home.html',
Expand Down
Expand Up @@ -113,6 +113,13 @@ module.controller('HomeCtrl', function(Realm, Auth, $location) {
}); });
}); });


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

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


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

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


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




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

0 comments on commit 99f74ac

Please sign in to comment.