KEYCLOAK-1187 First round: Combined ApplicationModel and OAuthClientModel into ClientModel. Removed OAuth Clients from Admin console and renamed Applications to Clients.
This commit is contained in:
1 parent
b92a178142
commit
6fbc0975c0
196 files changed
+6069
-9521
No files matched your search
+2
-2
@@ -2,7 +2,7 @@ package org.keycloak.protocol.saml;
|
||||
|
||||
import org.jboss.resteasy.plugins.providers.multipart.InputPart;
|
||||
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
|
||||
import org.keycloak.models.ApplicationModel;
|
||||
import org.keycloak.models.ClientModel;
|
||||
import org.keycloak.models.RealmModel;
|
||||
import org.keycloak.models.utils.KeycloakModelUtils;
|
||||
import org.keycloak.services.resources.admin.RealmAuth;
|
||||
@@ -79,7 +79,7 @@ public class EntityDescriptorImporterService {
|
||||
for (Object o : entities.getEntityDescriptor()) {
|
||||
EntityDescriptorType entity = (EntityDescriptorType)o;
|
||||
String entityId = entity.getEntityID();
|
||||
ApplicationModel app = realm.addApplication(entityId);
|
||||
ClientModel app = realm.addClient(entityId);
|
||||
app.setFullScopeAllowed(true);
|
||||
app.setProtocol(SamlProtocol.LOGIN_PROTOCOL);
|
||||
app.setAttribute(SamlProtocol.SAML_SERVER_SIGNATURE, SamlProtocol.ATTRIBUTE_TRUE_VALUE); // default to true
|
||||
|
||||
@@ -4,8 +4,10 @@ import org.jboss.logging.Logger;
|
||||
import org.jboss.resteasy.client.ClientRequest;
|
||||
import org.jboss.resteasy.client.ClientResponse;
|
||||
import org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor;
|
||||
import org.keycloak.dom.saml.v2.assertion.AssertionType;
|
||||
import org.keycloak.dom.saml.v2.assertion.AttributeStatementType;
|
||||
import org.keycloak.dom.saml.v2.protocol.ResponseType;
|
||||
import org.keycloak.events.EventBuilder;
|
||||
import org.keycloak.models.ApplicationModel;
|
||||
import org.keycloak.models.ClientModel;
|
||||
import org.keycloak.models.ClientSessionModel;
|
||||
import org.keycloak.models.KeycloakSession;
|
||||
@@ -18,20 +20,17 @@ import org.keycloak.protocol.ProtocolMapper;
|
||||
import org.keycloak.protocol.saml.mappers.SAMLAttributeStatementMapper;
|
||||
import org.keycloak.protocol.saml.mappers.SAMLLoginResponseMapper;
|
||||
import org.keycloak.protocol.saml.mappers.SAMLRoleListMapper;
|
||||
import org.keycloak.saml.common.constants.GeneralConstants;
|
||||
import org.keycloak.saml.common.constants.JBossSAMLURIConstants;
|
||||
import org.keycloak.saml.common.exceptions.ConfigurationException;
|
||||
import org.keycloak.saml.common.exceptions.ParsingException;
|
||||
import org.keycloak.saml.common.exceptions.ProcessingException;
|
||||
import org.keycloak.services.managers.ClientSessionCode;
|
||||
import org.keycloak.services.managers.ResourceAdminManager;
|
||||
import org.keycloak.services.messages.Messages;
|
||||
import org.keycloak.services.resources.RealmsResource;
|
||||
import org.keycloak.services.resources.admin.ClientAttributeCertificateResource;
|
||||
import org.keycloak.services.resources.flows.Flows;
|
||||
import org.keycloak.saml.common.constants.GeneralConstants;
|
||||
import org.keycloak.saml.common.constants.JBossSAMLURIConstants;
|
||||
import org.keycloak.saml.common.exceptions.ConfigurationException;
|
||||
import org.keycloak.saml.common.exceptions.ParsingException;
|
||||
import org.keycloak.saml.common.exceptions.ProcessingException;
|
||||
import org.keycloak.dom.saml.v2.assertion.AssertionType;
|
||||
import org.keycloak.dom.saml.v2.assertion.AttributeStatementType;
|
||||
import org.keycloak.dom.saml.v2.protocol.ResponseType;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import javax.ws.rs.core.HttpHeaders;
|
||||
@@ -429,7 +428,7 @@ public class SamlProtocol implements LoginProtocol {
|
||||
} else {
|
||||
logoutServiceUrl = client.getAttribute(SAML_SINGLE_LOGOUT_SERVICE_URL_REDIRECT_ATTRIBUTE);
|
||||
}
|
||||
if (logoutServiceUrl == null && client instanceof ApplicationModel) logoutServiceUrl = ((ApplicationModel)client).getManagementUrl();
|
||||
if (logoutServiceUrl == null && client instanceof ClientModel) logoutServiceUrl = ((ClientModel)client).getManagementUrl();
|
||||
if (logoutServiceUrl == null || logoutServiceUrl.trim().equals("")) return null;
|
||||
return ResourceAdminManager.resolveUri(uriInfo.getRequestUri(), logoutServiceUrl);
|
||||
|
||||
@@ -438,7 +437,7 @@ public class SamlProtocol implements LoginProtocol {
|
||||
@Override
|
||||
public Response frontchannelLogout(UserSessionModel userSession, ClientSessionModel clientSession) {
|
||||
ClientModel client = clientSession.getClient();
|
||||
if (!(client instanceof ApplicationModel)) return null;
|
||||
if (!(client instanceof ClientModel)) return null;
|
||||
try {
|
||||
if (isLogoutPostBindingForClient(clientSession)) {
|
||||
String bindingUri = getLogoutServiceUrl(uriInfo, client, SAML_POST_BINDING);
|
||||
@@ -500,8 +499,6 @@ public class SamlProtocol implements LoginProtocol {
|
||||
@Override
|
||||
public void backchannelLogout(UserSessionModel userSession, ClientSessionModel clientSession) {
|
||||
ClientModel client = clientSession.getClient();
|
||||
if (!(client instanceof ApplicationModel)) return;
|
||||
ApplicationModel app = (ApplicationModel)client;
|
||||
String logoutUrl = getLogoutServiceUrl(uriInfo, client, SAML_POST_BINDING);
|
||||
if (logoutUrl == null) {
|
||||
logger.warnv("Can't do backchannel logout. No SingleLogoutService POST Binding registered for client: {1}", client.getClientId());
|
||||
|
||||
@@ -2,11 +2,11 @@ package org.keycloak.protocol.saml;
|
||||
|
||||
import org.keycloak.VerificationException;
|
||||
import org.keycloak.models.ClientModel;
|
||||
import org.keycloak.util.PemUtils;
|
||||
import org.keycloak.saml.common.constants.GeneralConstants;
|
||||
import org.keycloak.saml.common.exceptions.ProcessingException;
|
||||
import org.keycloak.saml.processing.api.saml.v2.sig.SAML2Signature;
|
||||
import org.keycloak.saml.processing.web.util.RedirectBindingUtil;
|
||||
import org.keycloak.util.PemUtils;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import javax.ws.rs.core.MultivaluedMap;
|
||||
|
||||
@@ -11,7 +11,6 @@ import org.keycloak.events.Errors;
|
||||
import org.keycloak.events.EventBuilder;
|
||||
import org.keycloak.events.EventType;
|
||||
import org.keycloak.login.LoginFormsProvider;
|
||||
import org.keycloak.models.ApplicationModel;
|
||||
import org.keycloak.models.ClientModel;
|
||||
import org.keycloak.models.ClientSessionModel;
|
||||
import org.keycloak.models.KeycloakSession;
|
||||
@@ -165,7 +164,7 @@ public class SamlService {
|
||||
|
||||
RequestAbstractType requestAbstractType = (RequestAbstractType)samlObject;
|
||||
String issuer = requestAbstractType.getIssuer().getValue();
|
||||
ClientModel client = realm.findClient(issuer);
|
||||
ClientModel client = realm.getClientByClientId(issuer);
|
||||
|
||||
if (client == null) {
|
||||
event.event(EventType.LOGIN);
|
||||
@@ -178,7 +177,7 @@ public class SamlService {
|
||||
event.error(Errors.CLIENT_DISABLED);
|
||||
return Flows.forwardToSecurityFailurePage(session, realm, uriInfo, headers, Messages.LOGIN_REQUESTER_NOT_ENABLED);
|
||||
}
|
||||
if ((client instanceof ApplicationModel) && ((ApplicationModel)client).isBearerOnly()) {
|
||||
if ((client instanceof ClientModel) && ((ClientModel)client).isBearerOnly()) {
|
||||
event.event(EventType.LOGIN);
|
||||
event.error(Errors.NOT_ALLOWED);
|
||||
return Flows.forwardToSecurityFailurePage(session, realm, uriInfo, headers, Messages.BEARER_ONLY);
|
||||
@@ -241,8 +240,8 @@ public class SamlService {
|
||||
} else {
|
||||
redirect = client.getAttribute(SamlProtocol.SAML_ASSERTION_CONSUMER_URL_REDIRECT_ATTRIBUTE);
|
||||
}
|
||||
if (redirect == null && client instanceof ApplicationModel) {
|
||||
redirect = ((ApplicationModel)client).getManagementUrl();
|
||||
if (redirect == null && client instanceof ClientModel) {
|
||||
redirect = ((ClientModel)client).getManagementUrl();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -368,8 +367,8 @@ public class SamlService {
|
||||
|
||||
String redirectUri = null;
|
||||
|
||||
if (client instanceof ApplicationModel) {
|
||||
redirectUri = ((ApplicationModel)client).getBaseUrl();
|
||||
if (client instanceof ClientModel) {
|
||||
redirectUri = ((ClientModel)client).getBaseUrl();
|
||||
}
|
||||
|
||||
if (redirectUri != null) {
|
||||
@@ -404,7 +403,6 @@ public class SamlService {
|
||||
|
||||
protected class PostBindingProtocol extends BindingProtocol {
|
||||
|
||||
|
||||
@Override
|
||||
protected void verifySignature(SAMLDocumentHolder documentHolder, ClientModel client) throws VerificationException {
|
||||
SamlProtocolUtils.verifyDocumentSignature(client, documentHolder.getSamlDocument());
|
||||
|
||||
+5
-5
@@ -1,6 +1,6 @@
|
||||
package org.keycloak.protocol.saml.mappers;
|
||||
|
||||
import org.keycloak.models.ApplicationModel;
|
||||
import org.keycloak.models.ClientModel;
|
||||
import org.keycloak.models.ProtocolMapperModel;
|
||||
import org.keycloak.models.RoleContainerModel;
|
||||
import org.keycloak.models.RoleModel;
|
||||
@@ -72,9 +72,9 @@ public class RoleNameMapper extends AbstractOIDCProtocolMapper implements SAMLRo
|
||||
@Override
|
||||
public String mapName(ProtocolMapperModel model, RoleModel roleModel) {
|
||||
RoleContainerModel container = roleModel.getContainer();
|
||||
ApplicationModel app = null;
|
||||
if (container instanceof ApplicationModel) {
|
||||
app = ((ApplicationModel) container);
|
||||
ClientModel app = null;
|
||||
if (container instanceof ClientModel) {
|
||||
app = ((ClientModel) container);
|
||||
}
|
||||
String role = model.getConfig().get(ROLE_CONFIG);
|
||||
String newName = model.getConfig().get(NEW_ROLE_NAME);
|
||||
@@ -83,7 +83,7 @@ public class RoleNameMapper extends AbstractOIDCProtocolMapper implements SAMLRo
|
||||
if (scopeIndex > -1) {
|
||||
if (app == null) return null;
|
||||
appName = role.substring(0, scopeIndex);
|
||||
if (!app.getName().equals(appName)) return null;
|
||||
if (!app.getClientId().equals(appName)) return null;
|
||||
role = role.substring(scopeIndex + 1);
|
||||
} else {
|
||||
if (app != null) return null;
|
||||
|
||||
Reference in new issue
Block a user