Skip to content

Commit

Permalink
KEYCLOAK-1325
Browse files Browse the repository at this point in the history
Public/private SPI
  • Loading branch information
stianst committed Jun 4, 2015
1 parent 826c60a commit f50570e
Show file tree
Hide file tree
Showing 38 changed files with 111 additions and 85 deletions.
Expand Up @@ -10,8 +10,8 @@
public class IdentityProviderMapperSpi implements Spi {

@Override
public boolean isPrivate() {
return false;
public boolean isInternal() {
return true;
}

@Override
Expand Down
Expand Up @@ -29,7 +29,7 @@ public class IdentityProviderSpi implements Spi {
public static final String IDENTITY_PROVIDER_SPI_NAME = "identity_provider";

@Override
public boolean isPrivate() {
public boolean isInternal() {
return false;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class FileConnectionSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class HttpClientSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class InfinispanConnectionSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class JpaConnectionSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class JpaUpdaterSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class MongoConnectionSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class MongoUpdaterSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class EventListenerSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return false;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class EventStoreSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class ExportSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class ImportSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class AccountSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class ThemeSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -14,7 +14,35 @@ <h1>Server Info</h1>

<fieldset>
<legend collapsed>Providers</legend>

<div class="form-group">
<h3>Public SPIs</h3>
<kc-tooltip>For public SPIs there are built-in providers, but it's also supported to write your own custom providers.</kc-tooltip>

<table class="table table-striped table-bordered">
<thead>
<tr>
<th>SPI</th>
<th>Providers</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="spi in (serverInfo.providers | filter:{internal:false} | orderBy:'name')">
<td>{{spi.name}}</td>
<td>
<div data-ng-repeat="provider in (spi.implementations | orderBy:'toString()')">
{{provider}}
</div>
</td>
</tr>
</tbody>
</table>
</div>

<div class="form-group">
<h3>Internal SPIs</h3>
<kc-tooltip>For internal SPIs there are only built-in providers. It's not recommended to write your own custom providers as internal SPIs may change or be removed without notice.</kc-tooltip>

<table class="table table-striped table-bordered">
<thead>
<tr>
Expand All @@ -23,10 +51,10 @@ <h1>Server Info</h1>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="(spi, providers) in serverInfo.providers">
<td>{{spi}}</td>
<tr data-ng-repeat="spi in (serverInfo.providers | filter:{internal:true} | orderBy:'name')">
<td>{{spi.name}}</td>
<td>
<div data-ng-repeat="provider in providers">
<div data-ng-repeat="provider in (spi.implementations | orderBy:'toString()')">
{{provider}}
</div>
</td>
Expand Down
Expand Up @@ -10,7 +10,7 @@
public class EmailSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class LoginFormsSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -25,7 +25,7 @@ public Class<? extends ProviderFactory> getProviderFactoryClass() {
}

@Override
public boolean isPrivate() {
return false;
public boolean isInternal() {
return true;
}
}
Expand Up @@ -10,7 +10,7 @@
public class MigrationSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
2 changes: 1 addition & 1 deletion model/api/src/main/java/org/keycloak/models/RealmSpi.java
Expand Up @@ -10,7 +10,7 @@
public class RealmSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class UserFederationSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return false;
}

Expand Down
Expand Up @@ -12,7 +12,7 @@ public class UserSessionSpi implements Spi {
public static final String NAME = "userSessions";

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
2 changes: 1 addition & 1 deletion model/api/src/main/java/org/keycloak/models/UserSpi.java
Expand Up @@ -10,7 +10,7 @@
public class UserSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
8 changes: 4 additions & 4 deletions model/api/src/main/java/org/keycloak/provider/Spi.java
Expand Up @@ -5,9 +5,9 @@
*/
public interface Spi {

public boolean isPrivate();
public String getName();
public Class<? extends Provider> getProviderClass();
public Class<? extends ProviderFactory> getProviderFactoryClass();
boolean isInternal();
String getName();
Class<? extends Provider> getProviderClass();
Class<? extends ProviderFactory> getProviderFactoryClass();

}
Expand Up @@ -11,7 +11,7 @@
public class CacheRealmProviderSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -11,7 +11,7 @@
public class CacheUserProviderSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -11,7 +11,7 @@
public class AuthenticatorSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return false;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class ClientImportSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class MessagesSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,7 +10,7 @@
public class LoginProtocolSpi implements Spi {

@Override
public boolean isPrivate() {
public boolean isInternal() {
return true;
}

Expand Down
Expand Up @@ -10,8 +10,8 @@
public class ProtocolMapperSpi implements Spi {

@Override
public boolean isPrivate() {
return false;
public boolean isInternal() {
return true;
}

@Override
Expand Down
Expand Up @@ -4,8 +4,6 @@
import org.keycloak.Config;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.models.RealmModel;
import org.keycloak.models.RealmProvider;
import org.keycloak.provider.Provider;
import org.keycloak.provider.ProviderEvent;
import org.keycloak.provider.ProviderEventListener;
Expand Down Expand Up @@ -66,7 +64,7 @@ public void init() {
Config.Scope scope = Config.scope(spi.getName(), provider);
factory.init(scope);

if (spi.isPrivate() && !isInternal(factory)) {
if (spi.isInternal() && !isInternal(factory)) {
log.warnv("{0} ({1}) is implementing the internal SPI {2}. This SPI is internal and may change without notice", factory.getId(), factory.getClass().getName(), spi.getName());
}

Expand All @@ -78,7 +76,7 @@ public void init() {
Config.Scope scope = Config.scope(spi.getName(), factory.getId());
factory.init(scope);

if (spi.isPrivate() && !isInternal(factory)) {
if (spi.isInternal() && !isInternal(factory)) {
log.warnv("{0} ({1}) is implementing the internal SPI {2}. This SPI is internal and may change without notice", factory.getId(), factory.getClass().getName(), spi.getName());
}

Expand Down

0 comments on commit f50570e

Please sign in to comment.