8000 Server config by stianst · Pull Request #392 · keycloak/keycloak · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions audit/api/src/main/java/org/keycloak/audit/Audit.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,8 @@
import org.keycloak.models.RealmModel;
import org.keycloak.models.UserModel;
import org.keycloak.models.UserSessionModel;
import org.keycloak.provider.ProviderFactoryLoader;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

/**
Expand Down
27 changes: 27 additions & 0 deletions audit/api/src/main/java/org/keycloak/audit/AuditListenerSpi.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.keycloak.audit;

import org.keycloak.provider.Provider;
import org.keycloak.provider.ProviderFactory;
import org.keycloak.provider.Spi;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public class AuditListenerSpi implements Spi {

@Override
public String getName() {
return "audit-listener";
}

@Override
public Class<? extends Provider> getProviderClass() {
return AuditListener.class;
}

@Override
public Class<? extends ProviderFactory> getProviderFactoryClass() {
return AuditListenerFactory.class;
}

}
27 changes: 27 additions & 0 deletions audit/api/src/main/java/org/keycloak/audit/AuditProviderSpi.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.keycloak.audit;

import org.keycloak.provider.Provider;
import org.keycloak.provider.ProviderFactory;
import org.keycloak.provider.Spi;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public class AuditProviderSpi implements Spi {

@Override
public String getName() {
return "audit";
}

@Override
public Class<? extends Provider> getProviderClass() {
return AuditProvider.class;
}

@Override
public Class<? extends ProviderFactory> getProviderFactoryClass() {
return AuditProviderFactory.class;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
org.keycloak.audit.AuditProviderSpi
org.keycloak.audit.AuditListenerSpi
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.keycloak.audit.log;

import org.jboss.logging.Logger;
import org.keycloak.Config;
import org.keycloak.audit.AuditListener;
import org.keycloak.audit.AuditListenerFactory;
import org.keycloak.provider.ProviderSession;
import org.keycloak.provider.ProviderSessionFactory;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
Expand All @@ -21,7 +21,7 @@ public AuditListener create(ProviderSession providerSession) {
}

@Override
public void init() {
public void init(Config.Scope config) {
}

@Override
Expand All @@ -33,9 +33,4 @@ public String getId() {
return ID;
}

@Override
public boolean lazyLoad() {
return false;
}

}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.keycloak.audit.jpa;

import org.keycloak.Config;
import org.keycloak.audit.AuditProvider;
import org.keycloak.audit.AuditProviderFactory;
import org.keycloak.provider.ProviderSession;
import org.keycloak.provider.ProviderSessionFactory;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
Expand All @@ -22,7 +22,7 @@ public AuditProvider create(ProviderSession providerSession) {
}

@Override
public void init() {
public void init(Config.Scope config) {
emf = Persistence.createEntityManagerFactory("jpa-keycloak-audit-store");
}

Expand All @@ -36,9 +36,4 @@ public String getId() {
return ID;
}

@Override
public boolean lazyLoad() {
return true;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@

import com.mongodb.DB;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.WriteConcern;
import org.keycloak.Config;
import org.keycloak.audit.AuditProvider;
import org.keycloak.audit.AuditProviderFactory;
import org.keycloak.provider.ProviderSession;
import org.keycloak.provider.ProviderSessionFactory;

import java.net.UnknownHostException;
import java.util.Collections;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
Expand All @@ -29,11 +32,28 @@ public AuditProvider create(ProviderSession providerSession) {
}

@Override
public void init() {
public void init(Config.Scope config) {
try {
client = new MongoClient(System.getProperty(MONGO_HOST, "localhost"), Integer.parseInt(System.getProperty(MONGO_PORT, "27017")));
String host = config.get("host", ServerAddress.defaultHost());
int port = config.getInt("port", ServerAddress.defaultPort());
String dbName = config.get("db", "keycloak-audit");
boolean clearOnStartup = config.getBoolean("clearOnStartup", false);

String user = config.get("user");
String password = config.get("password");
if (user != null && password != null) {
MongoCredential credential = MongoCredential.createMongoCRCredential(user, dbName, password.toCharArray());
client = new MongoClient(new ServerAddress(host, port), Collections.singletonList(credential));
} else {
client = new MongoClient(host, port);
}

client.setWriteConcern(WriteConcern.UNACKNOWLEDGED);
db = client.getDB(System.getProperty(MONGO_DB_NAME, "keycloak-audit"));
db = client.getDB(dbName);

if (clearOnStartup) {
db.getCollection("audit").drop();
}
} catch (UnknownHostException e) {
throw new RuntimeException(e);
}
Expand All @@ -49,9 +69,4 @@ public String getId() {
return ID;
}

@Override
public boolean lazyLoad() {
return true;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.Config;
import org.keycloak.audit.AuditProvider;
import org.keycloak.audit.AuditProviderFactory;
import org.keycloak.audit.Event;
import org.keycloak.provider.ProviderFactory;
import org.keycloak.provider.ProviderFactoryLoader;

import java.util.HashMap;
import java.util.Map;
import java.util.ServiceLoader;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
Expand All @@ -23,9 +24,14 @@ public abstract class AbstractAuditProviderTest {

@Before
public void before() {
ProviderFactoryLoader<AuditProvider> loader = ProviderFactoryLoader.create(AuditProviderFactory.class);
factory = loader.find(getProviderId());
factory.init();
String providerId = getProviderId();
ServiceLoader<AuditProviderFactory> factories = ServiceLoader.load(AuditProviderFactory.class);
for (AuditProviderFactory f : factories) {
if (f.getId().equals(providerId)) {
factory = f;
factory.init(Config.scope("audit", providerId));
}
}

provider = factory.create(null);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.keycloak.authentication;

import org.keycloak.provider.Provider;
import org.keycloak.provider.ProviderFactory;
import org.keycloak.provider.Spi;

/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public class AuthenticationSpi implements Spi {

@Override
public String getName() {
return "authentication";
}

@Override
public Class<? extends Provider> getProviderClass() {
return AuthenticationProvider.class;
}

@Override
public Class<? extends ProviderFactory> getProviderFactoryClass() {
return AuthenticationProviderFactory.class;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
org.keycloak.authentication.AuthenticationSpi
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.keycloak.authentication.model;

import org.keycloak.Config;
import org.keycloak.authentication.AuthProviderConstants;
import org.keycloak.authentication.AuthenticationProvider;
import org.keycloak.authentication.AuthenticationProviderFactory;
import org.keycloak.provider.ProviderSession;
import org.keycloak.provider.ProviderSessionFactory;

/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
Expand All @@ -17,7 +17,7 @@ public AuthenticationProvider create(ProviderSession providerSession) {
}

@Override
public void init() {
public void init(Config.Scope config) {
}

@Override
Expand All @@ -29,8 +29,4 @@ public String getId() {
return AuthProviderConstants.PROVIDER_NAME_EXTERNAL_MODEL;
}

@Override
public boolean lazyLoad() {
return false;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.keycloak.authentication.model;

import org.keycloak.Config;
import org.keycloak.authentication.AuthProviderConstants;
import org.keycloak.authentication.AuthenticationProvider;
import org.keycloak.authentication.AuthenticationProviderFactory;
Expand All @@ -16,7 +17,7 @@ public AuthenticationProvider create(ProviderSession providerSession) {
}

@Override
public void init() {
public void init(Config.Scope config) {
}

@Override
Expand All @@ -28,8 +29,4 @@ public String getId() {
return AuthProviderConstants.PROVIDER_NAME_MODEL;
}

@Override
public boolean lazyLoad() {
return false;
}
}
Original file line number Diff line number Diff line change
@@ -1,28 +1,25 @@
package org.keycloak.authentication.picketlink;

import java.util.Collections;
import java.util.List;
import java.util.Map;

import org.jboss.logging.Logger;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.keycloak.models.RealmModel;
import org.keycloak.authentication.AuthProviderStatus;
import org.keycloak.authentication.AuthProviderConstants;
import org.keycloak.authentication.AuthProviderStatus;
import org.keycloak.authentication.AuthUser;
import org.keycloak.authentication.AuthenticationProvider;
import org.keycloak.authentication.AuthenticationProviderException;
import org.keycloak.models.RealmModel;
import org.keycloak.picketlink.IdentityManagerProvider;
import org.keycloak.util.ProviderLoader;
import org.picketlink.idm.IdentityManagementException;
import org.picketlink.idm.IdentityManager;
import org.picketlink.idm.PartitionManager;
import org.picketlink.idm.credential.Credentials;
import org.picketlink.idm.credential.Password;
import org.picketlink.idm.credential.UsernamePasswordCredentials;
import org.picketlink.idm.model.basic.BasicModel;
import org.picketlink.idm.model.basic.User;

import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
* AuthenticationProvider, which delegates authentication to picketlink
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.keycloak.authentication.picketlink;

import org.keycloak.Config;
import org.keycloak.authentication.AuthProviderConstants;
import org.keycloak.authentication.AuthenticationProvider;
import org.keycloak.authentication.AuthenticationProviderFactory;
Expand All @@ -17,7 +18,7 @@ public AuthenticationProvider create(ProviderSession providerSession) {
}

@Override
public void init() {
public void init(Config.Scope config) {
}

@Override
Expand All @@ -29,8 +30,4 @@ public String getId() {
return AuthProviderConstants.PROVIDER_NAME_PICKETLINK;
}

@Override
public boolean lazyLoad() {
return false;
}
}
Loading
0