diff --git a/authz/policy/drools/pom.xml b/authz/policy/drools/pom.xml deleted file mode 100644 index ad08565faf1..00000000000 --- a/authz/policy/drools/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - 4.0.0 - - - org.keycloak - keycloak-authz-provider-parent - 9.0.0-SNAPSHOT - ../pom.xml - - - keycloak-authz-policy-drools - jar - - KeyCloak AuthZ: Drools Policy Provider - KeyCloak AuthZ: Drools Policy Provider - - - - - - org.keycloak - drools-bom - pom - ${project.version} - import - - - - - - - org.keycloak - keycloak-server-spi - provided - - - org.keycloak - keycloak-server-spi-private - provided - - - org.keycloak - keycloak-services - provided - - - - org.drools - drools-core - provided - - - - org.jboss.spec.javax.ws.rs - jboss-jaxrs-api_2.1_spec - provided - - - - diff --git a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicy.java b/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicy.java deleted file mode 100644 index c8848c18577..00000000000 --- a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicy.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.keycloak.authorization.policy.provider.drools; - -import org.keycloak.authorization.model.Policy; -import org.keycloak.authorization.policy.evaluation.Evaluation; -import org.kie.api.KieServices; -import org.kie.api.builder.KieScanner; -import org.kie.api.runtime.KieContainer; -import org.kie.api.runtime.KieSession; - -import java.util.concurrent.TimeUnit; - -/** - * @author Pedro Igor - */ -class DroolsPolicy { - - private static final int SESSION_POOL_SIZE = 10; - - private final KieContainer kc; - private final KieScanner kcs; - private final String sessionName; - - DroolsPolicy(KieServices ks, Policy associatedPolicy) { - String groupId = associatedPolicy.getConfig().get("mavenArtifactGroupId"); - String artifactId = associatedPolicy.getConfig().get("mavenArtifactId"); - String version = associatedPolicy.getConfig().get("mavenArtifactVersion"); - String scannerPeriod = associatedPolicy.getConfig().get("scannerPeriod"); - String scannerPeriodUnit = associatedPolicy.getConfig().get("scannerPeriodUnit"); - this.sessionName = associatedPolicy.getConfig().get("sessionName"); - - this.kc = ks.newKieContainer(ks.newReleaseId(groupId, artifactId, version)); - this.kcs = ks.newKieScanner(this.kc); - this.kcs.start(toMillis(scannerPeriod, scannerPeriodUnit)); - - KieSession session = this.kc.newKieSession(this.sessionName); - - if (session == null) { - throw new RuntimeException("Could not obtain session with name [" + this.sessionName + "]."); - } - - session.dispose(); - } - - void evaluate(Evaluation evaluation) { - KieSession session = this.kc.newKieSession(this.sessionName); - - session.insert(evaluation); - session.fireAllRules(); - - session.dispose(); - } - - void dispose() { - this.kcs.stop(); - } - - private long toMillis(final String scannerPeriod, final String scannerPeriodUnit) { - switch (scannerPeriodUnit) { - case "Seconds": - return TimeUnit.SECONDS.toMillis(Integer.valueOf(scannerPeriod)); - case "Minutes": - return TimeUnit.MINUTES.toMillis(Integer.valueOf(scannerPeriod)); - case "Hours": - return TimeUnit.HOURS.toMillis(Integer.valueOf(scannerPeriod)); - case "Days": - return TimeUnit.DAYS.toMillis(Integer.valueOf(scannerPeriod)); - } - - throw new RuntimeException("Invalid time period [" + scannerPeriodUnit + "]."); - } -} diff --git a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyAdminResource.java b/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyAdminResource.java deleted file mode 100644 index e202ab5865a..00000000000 --- a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyAdminResource.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.authorization.policy.provider.drools; - -import org.keycloak.authorization.policy.provider.PolicyProviderAdminService; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; -import org.keycloak.services.ErrorResponse; -import org.kie.api.runtime.KieContainer; - -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -/** - * @author Pedro Igor - */ -public class DroolsPolicyAdminResource implements PolicyProviderAdminService { - - private final DroolsPolicyProviderFactory factory; - - public DroolsPolicyAdminResource(DroolsPolicyProviderFactory factory) { - this.factory = factory; - } - - @Path("/resolveModules") - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces("application/json") - public Response resolveModules(RulePolicyRepresentation policy) { - return Response.ok(getContainer(policy).getKieBaseNames()).build(); - } - - @Path("/resolveSessions") - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response resolveSessions(RulePolicyRepresentation policy) { - return Response.ok(getContainer(policy).getKieSessionNamesInKieBase(policy.getModuleName())).build(); - } - - private KieContainer getContainer(RulePolicyRepresentation policy) { - final String groupId = policy.getArtifactGroupId(); - final String artifactId = policy.getArtifactId(); - final String version = policy.getArtifactVersion(); - try { - return this.factory.getKieContainer(groupId, artifactId, version); - } catch (RuntimeException re) { - throw new WebApplicationException(ErrorResponse.error( - "Unable to locate artifact " + groupId + ":" + artifactId + ":" + version, Response.Status.BAD_REQUEST)); - } - } -} diff --git a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProvider.java b/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProvider.java deleted file mode 100644 index 77023f528ec..00000000000 --- a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProvider.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * - * Copyright 2015 Red Hat, Inc. and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.authorization.policy.provider.drools; - -import java.util.function.Function; - -import org.keycloak.authorization.model.Policy; -import org.keycloak.authorization.policy.evaluation.Evaluation; -import org.keycloak.authorization.policy.provider.PolicyProvider; - -/** - * @author Pedro Igor - */ -public class DroolsPolicyProvider implements PolicyProvider { - - private final Function policy; - - public DroolsPolicyProvider(Function policyProvider) { - this.policy = policyProvider; - } - - @Override - public void evaluate(Evaluation evaluation) { - policy.apply(evaluation.getPolicy()).evaluate(evaluation); - } - - @Override - public void close() { - - } -} diff --git a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProviderFactory.java b/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProviderFactory.java deleted file mode 100644 index 0d4da972243..00000000000 --- a/authz/policy/drools/src/main/java/org/keycloak/authorization/policy/provider/drools/DroolsPolicyProviderFactory.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.keycloak.authorization.policy.provider.drools; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import org.keycloak.Config; -import org.keycloak.authorization.AuthorizationProvider; -import org.keycloak.authorization.model.Policy; -import org.keycloak.authorization.model.ResourceServer; -import org.keycloak.authorization.policy.provider.PolicyProvider; -import org.keycloak.authorization.policy.provider.PolicyProviderAdminService; -import org.keycloak.authorization.policy.provider.PolicyProviderFactory; -import org.keycloak.common.Profile; -import org.keycloak.models.KeycloakSession; -import org.keycloak.models.KeycloakSessionFactory; -import org.keycloak.provider.EnvironmentDependentProviderFactory; -import org.keycloak.representations.idm.authorization.PolicyRepresentation; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; -import org.kie.api.KieServices; -import org.kie.api.runtime.KieContainer; - -/** - * @author Pedro Igor - */ -public class DroolsPolicyProviderFactory implements PolicyProviderFactory, EnvironmentDependentProviderFactory { - - private KieServices ks; - private final Map containers = Collections.synchronizedMap(new HashMap<>()); - private DroolsPolicyProvider provider = new DroolsPolicyProvider(policy -> { - if (!containers.containsKey(policy.getId())) { - synchronized (containers) { - update(policy); - } - } - return containers.get(policy.getId()); - }); - - @Override - public String getName() { - return "Rules"; - } - - @Override - public String getGroup() { - return "Rule Based"; - } - - @Override - public PolicyProvider create(AuthorizationProvider authorization) { - return provider; - } - - @Override - public RulePolicyRepresentation toRepresentation(Policy policy, AuthorizationProvider authorization) { - RulePolicyRepresentation representation = new RulePolicyRepresentation(); - - representation.setArtifactGroupId(policy.getConfig().get("mavenArtifactGroupId")); - representation.setArtifactId(policy.getConfig().get("mavenArtifactId")); - representation.setArtifactVersion(policy.getConfig().get("mavenArtifactVersion")); - representation.setScannerPeriod(policy.getConfig().get("scannerPeriod")); - representation.setScannerPeriodUnit(policy.getConfig().get("scannerPeriodUnit")); - representation.setSessionName(policy.getConfig().get("sessionName")); - representation.setModuleName(policy.getConfig().get("moduleName")); - - return representation; - } - - @Override - public PolicyProviderAdminService getAdminResource(ResourceServer resourceServer, AuthorizationProvider authorization) { - return new DroolsPolicyAdminResource(this); - } - - @Override - public PolicyProvider create(KeycloakSession session) { - return null; - } - - @Override - public void onCreate(Policy policy, RulePolicyRepresentation representation, AuthorizationProvider authorization) { - updateConfig(policy, representation); - update(policy); - } - - @Override - public void onUpdate(Policy policy, RulePolicyRepresentation representation, AuthorizationProvider authorization) { - updateConfig(policy, representation); - update(policy); - } - - @Override - public void onImport(Policy policy, PolicyRepresentation representation, AuthorizationProvider authorization) { - update(policy); - } - - @Override - public void onRemove(Policy policy, AuthorizationProvider authorization) { - remove(policy); - } - - @Override - public Class getRepresentationType() { - return RulePolicyRepresentation.class; - } - - @Override - public void init(Config.Scope config) { - this.ks = KieServices.get(); - } - - @Override - public void postInit(KeycloakSessionFactory factory) { - } - - @Override - public void close() { - this.containers.values().forEach(DroolsPolicy::dispose); - this.containers.clear(); - } - - @Override - public String getId() { - return "rules"; - } - - private void updateConfig(Policy policy, RulePolicyRepresentation representation) { - policy.putConfig("mavenArtifactGroupId", representation.getArtifactGroupId()); - policy.putConfig("mavenArtifactId", representation.getArtifactId()); - policy.putConfig("mavenArtifactVersion", representation.getArtifactVersion()); - policy.putConfig("scannerPeriod", representation.getScannerPeriod()); - policy.putConfig("scannerPeriodUnit", representation.getScannerPeriodUnit()); - policy.putConfig("sessionName", representation.getSessionName()); - policy.putConfig("moduleName", representation.getModuleName()); - } - - void update(Policy policy) { - remove(policy); - this.containers.put(policy.getId(), new DroolsPolicy(this.ks, policy)); - } - - void remove(Policy policy) { - DroolsPolicy holder = this.containers.remove(policy.getId()); - - if (holder != null) { - holder.dispose(); - } - } - - KieContainer getKieContainer(String groupId, String artifactId, String version) { - return this.ks.newKieContainer(this.ks.newReleaseId(groupId, artifactId, version)); - } - - @Override - public boolean isSupported() { - return Profile.isFeatureEnabled(Profile.Feature.AUTHZ_DROOLS_POLICY); - } -} diff --git a/authz/policy/drools/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory b/authz/policy/drools/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory deleted file mode 100644 index 512e3344f36..00000000000 --- a/authz/policy/drools/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory +++ /dev/null @@ -1,19 +0,0 @@ -# -# JBoss, Home of Professional Open Source. -# Copyright 2016 Red Hat, Inc., and individual contributors -# as indicated by the @author tags. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -org.keycloak.authorization.policy.provider.drools.DroolsPolicyProviderFactory \ No newline at end of file diff --git a/authz/policy/pom.xml b/authz/policy/pom.xml index 70e7881888d..84b0d5ffd51 100644 --- a/authz/policy/pom.xml +++ b/authz/policy/pom.xml @@ -19,7 +19,6 @@ common - drools diff --git a/common/src/main/java/org/keycloak/common/Profile.java b/common/src/main/java/org/keycloak/common/Profile.java index fbefa88ae18..0aeadc934d4 100755 --- a/common/src/main/java/org/keycloak/common/Profile.java +++ b/common/src/main/java/org/keycloak/common/Profile.java @@ -52,7 +52,6 @@ public class Profile { OPENSHIFT_INTEGRATION(Type.PREVIEW), SCRIPTS(Type.PREVIEW), TOKEN_EXCHANGE(Type.PREVIEW), - AUTHZ_DROOLS_POLICY(Type.PREVIEW), UPLOAD_SCRIPTS(DEPRECATED); private Type type; diff --git a/common/src/test/java/org/keycloak/common/ProfileTest.java b/common/src/test/java/org/keycloak/common/ProfileTest.java index b2eb7075225..5d2c2ce3c87 100644 --- a/common/src/test/java/org/keycloak/common/ProfileTest.java +++ b/common/src/test/java/org/keycloak/common/ProfileTest.java @@ -21,8 +21,8 @@ public class ProfileTest { @Test public void checkDefaults() { Assert.assertEquals("community", Profile.getName()); - assertEquals(Profile.getDisabledFeatures(), Profile.Feature.ACCOUNT2, Profile.Feature.ACCOUNT_API, Profile.Feature.ADMIN_FINE_GRAINED_AUTHZ, Profile.Feature.DOCKER, Profile.Feature.SCRIPTS, Profile.Feature.TOKEN_EXCHANGE, Profile.Feature.AUTHZ_DROOLS_POLICY, Profile.Feature.OPENSHIFT_INTEGRATION, Profile.Feature.UPLOAD_SCRIPTS); - assertEquals(Profile.getPreviewFeatures(), Profile.Feature.ACCOUNT_API, Profile.Feature.ADMIN_FINE_GRAINED_AUTHZ, Profile.Feature.SCRIPTS, Profile.Feature.TOKEN_EXCHANGE, Profile.Feature.AUTHZ_DROOLS_POLICY, Profile.Feature.OPENSHIFT_INTEGRATION); + assertEquals(Profile.getDisabledFeatures(), Profile.Feature.ACCOUNT2, Profile.Feature.ACCOUNT_API, Profile.Feature.ADMIN_FINE_GRAINED_AUTHZ, Profile.Feature.DOCKER, Profile.Feature.SCRIPTS, Profile.Feature.TOKEN_EXCHANGE, Profile.Feature.OPENSHIFT_INTEGRATION, Profile.Feature.UPLOAD_SCRIPTS); + assertEquals(Profile.getPreviewFeatures(), Profile.Feature.ACCOUNT_API, Profile.Feature.ADMIN_FINE_GRAINED_AUTHZ, Profile.Feature.SCRIPTS, Profile.Feature.TOKEN_EXCHANGE, Profile.Feature.OPENSHIFT_INTEGRATION); assertEquals(Profile.getExperimentalFeatures(), Profile.Feature.ACCOUNT2); assertEquals(Profile.getDeprecatedFeatures(), Profile.Feature.UPLOAD_SCRIPTS); } diff --git a/core/src/main/java/org/keycloak/representations/idm/authorization/RulePolicyRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/authorization/RulePolicyRepresentation.java deleted file mode 100644 index f24ecd4e73a..00000000000 --- a/core/src/main/java/org/keycloak/representations/idm/authorization/RulePolicyRepresentation.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.representations.idm.authorization; - -/** - * @author Pedro Igor - */ -public class RulePolicyRepresentation extends AbstractPolicyRepresentation { - - private String artifactGroupId; - private String artifactId; - private String artifactVersion; - private String moduleName; - private String sessionName; - private String scannerPeriod; - private String scannerPeriodUnit; - - @Override - public String getType() { - return "rules"; - } - - public String getArtifactGroupId() { - return artifactGroupId; - } - - public void setArtifactGroupId(String artifactGroupId) { - this.artifactGroupId = artifactGroupId; - } - - public String getArtifactId() { - return artifactId; - } - - public void setArtifactId(String artifactId) { - this.artifactId = artifactId; - } - - public String getArtifactVersion() { - return artifactVersion; - } - - public void setArtifactVersion(String artifactVersion) { - this.artifactVersion = artifactVersion; - } - - public String getModuleName() { - return moduleName; - } - - public void setModuleName(String moduleName) { - this.moduleName = moduleName; - } - - public String getSessionName() { - return sessionName; - } - - public void setSessionName(String sessionName) { - this.sessionName = sessionName; - } - - public String getScannerPeriod() { - return scannerPeriod; - } - - public void setScannerPeriod(String scannerPeriod) { - this.scannerPeriod = scannerPeriod; - } - - public String getScannerPeriodUnit() { - return scannerPeriodUnit; - } - - public void setScannerPeriodUnit(String scannerPeriodUnit) { - this.scannerPeriodUnit = scannerPeriodUnit; - } -} diff --git a/dependencies/drools-bom/pom.xml b/dependencies/drools-bom/pom.xml deleted file mode 100644 index 3ccf03e8236..00000000000 --- a/dependencies/drools-bom/pom.xml +++ /dev/null @@ -1,262 +0,0 @@ - - - - org.keycloak - keycloak-dependencies-parent - 9.0.0-SNAPSHOT - - 4.0.0 - - drools-bom - pom - Keycloak Drools BOM - - Import this BOM in your dependencyManagement if you want to depend on multiple Drools artifacts. - - - - 1.0 - 1.4.10 - 3.5.2 - 1.8.4 - 1.8.4 - 3.3.9 - 3.0.0 - 2.5.2 - 1.6 - 1.21 - 3.0.22 - 1.1.0 - 0.3.2 - 0.3.2 - 2.4.0.Final - 1.7 - 1.3 - 4.0 - 4.4.2 - - - - - - org.drools - drools-bom - pom - ${version.org.drools} - import - - - org.kie.soup - kie-soup-bom - pom - ${version.org.drools} - import - - - - aopalliance - aopalliance - ${aopalliance.version} - - - com.thoughtworks.xstream - xstream - ${xstream.version} - - - org.antlr - antlr-runtime - ${antlr-runtime.version} - - - org.apache.ant - ant - ${ant.version} - - - org.apache.ant - ant-launcher - ${ant-launcher.version} - - - org.apache.maven - maven-aether-provider - ${maven.version} - - - org.apache.maven - maven-artifact - ${maven.version} - - - org.apache.maven - maven-compat - ${maven.version} - - - org.apache.maven - maven-core - ${maven.version} - - - org.apache.maven - maven-model - ${maven.version} - - - org.apache.maven - maven-model-builder - ${maven.version} - - - org.apache.maven - maven-plugin-api - ${maven.version} - - - org.apache.maven - maven-repository-metadata - ${maven.version} - - - org.apache.maven - maven-settings - ${maven.version} - - - org.apache.maven - maven-settings-builder - ${maven.version} - - - org.apache.maven - maven-builder-support - ${maven.version} - - - org.apache.maven.wagon - wagon-http - ${wagon.version} - - - org.apache.maven.wagon - wagon-http-shared - ${wagon.version} - - - org.apache.maven.wagon - wagon-provider-api - ${wagon.version} - - - org.codehaus.plexus - plexus-classworlds - ${plexus-classworlds.version} - - - org.codehaus.plexus - plexus-component-annotations - ${plexus-component-annotations.version} - - - org.codehaus.plexus - plexus-interpolation - ${plexus-interpolation.version} - - - org.codehaus.plexus - plexus-utils - ${plexus-utils.version} - - - org.eclipse.aether - aether-api - ${aether.version} - - - org.eclipse.aether - aether-connector-basic - ${aether.version} - - - org.eclipse.aether - aether-impl - ${aether.version} - - - org.eclipse.aether - aether-spi - ${aether.version} - - - org.eclipse.aether - aether-transport-file - ${aether.version} - - - org.eclipse.aether - aether-transport-http - ${aether.version} - - - org.eclipse.aether - aether-transport-wagon - ${aether.version} - - - org.eclipse.aether - aether-util - ${aether.version} - - - org.eclipse.sisu - org.eclipse.sisu.inject - ${org.eclipse.sisu.inject} - - - org.eclipse.sisu - org.eclipse.sisu.plexus - ${org.eclipse.sisu.plexus} - - - org.mvel - mvel2 - ${mvel2.version} - - - org.sonatype.plexus - plexus-cipher - ${plexus-cipher.version} - - - org.sonatype.plexus - plexus-sec-dispatcher - ${plexus-sec-dispatcher.version} - - - com.google.inject.extensions - guice-servlet - ${sisu-guice.version} - - - com.google.inject - guice - - - - - com.google.inject - guice - no_aop - ${sisu-guice.version} - - - org.eclipse.jdt.core.compiler - ecj - ${ecj.version} - - - - - diff --git a/dependencies/pom.xml b/dependencies/pom.xml index 92dda925856..bda96c58dfa 100755 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -31,7 +31,6 @@ - drools-bom server-min server-all diff --git a/dependencies/server-all/pom.xml b/dependencies/server-all/pom.xml index 72b17e39721..af6846f23b9 100755 --- a/dependencies/server-all/pom.xml +++ b/dependencies/server-all/pom.xml @@ -30,19 +30,6 @@ Keycloak Dependencies Server All - - - - - org.keycloak - drools-bom - pom - ${project.version} - import - - - - org.keycloak @@ -100,351 +87,6 @@ keycloak-authz-policy-common - - - org.keycloak - keycloak-authz-policy-drools - - - - org.kie - kie-api - - - * - * - - - - - org.kie - kie-ci - - - * - * - - - - - org.kie - kie-internal - - - * - * - - - - - org.kie.soup - kie-soup-maven-support - - - * - * - - - - - org.kie.soup - kie-soup-maven-integration - - - * - * - - - - - org.kie.soup - kie-soup-commons - - - * - * - - - - - org.kie.soup - kie-soup-project-datamodel-commons - - - * - * - - - - - org.drools - drools-core - - - * - * - - - - - org.drools - drools-compiler - - - * - * - - - - - org.eclipse.aether - aether-api - - - org.eclipse.aether - aether-connector-basic - - - org.eclipse.aether - aether-spi - - - org.eclipse.aether - aether-impl - - - org.eclipse.aether - aether-transport-file - - - org.eclipse.aether - aether-transport-http - - - * - * - - - - - org.eclipse.aether - aether-transport-wagon - - - org.eclipse.aether - aether-util - - - org.apache.ant - ant - - - org.apache.ant - ant-launcher - - - org.antlr - antlr-runtime - - - aopalliance - aopalliance - - - org.apache.maven - maven-aether-provider - - - * - * - - - - - org.apache.maven - maven-artifact - - - * - * - - - - - org.apache.maven - maven-compat - - - org.apache.maven - maven-core - - - * - * - - - - - org.apache.maven - maven-model - - - * - * - - - - - org.apache.maven - maven-model-builder - - - * - * - - - - - org.apache.maven - maven-plugin-api - - - org.apache.maven - maven-repository-metadata - - - org.apache.maven - maven-settings - - - org.apache.maven - maven-settings-builder - - - * - * - - - - - org.apache.maven - maven-builder-support - - - * - * - - - - - org.mvel - mvel2 - - - org.eclipse.sisu - org.eclipse.sisu.inject - - - com.google.inject - guice - - - - - org.eclipse.sisu - org.eclipse.sisu.plexus - - - com.google.inject.extensions - guice-servlet - - - org.sonatype.plexus - plexus-cipher - - - org.codehaus.plexus - plexus-classworlds - - - org.codehaus.plexus - plexus-component-annotations - - - org.codehaus.plexus - plexus-interpolation - - - org.sonatype.plexus - plexus-sec-dispatcher - - - org.codehaus.plexus - plexus-utils - - - org.apache.maven.wagon - wagon-http - - - * - * - - - - - org.apache.maven.wagon - wagon-http-shared - - - * - * - - - - - org.apache.maven.wagon - wagon-provider-api - - - com.thoughtworks.xstream - xstream - - - * - * - - - - - org.eclipse.jdt.core.compiler - ecj - - - org.apache.httpcomponents - httpclient - - - * - * - - - - - org.apache.httpcomponents - httpcore - - - * - * - - - - - com.google.inject - guice - no_aop - com.openshift openshift-restclient-java diff --git a/distribution/feature-packs/server-feature-pack/pom.xml b/distribution/feature-packs/server-feature-pack/pom.xml index 1030072ea71..2384bd177b4 100644 --- a/distribution/feature-packs/server-feature-pack/pom.xml +++ b/distribution/feature-packs/server-feature-pack/pom.xml @@ -29,29 +29,7 @@ Keycloak Feature Pack: Server pom - - - - org.keycloak - drools-bom - pom - ${project.version} - import - - - - - - aopalliance - aopalliance - - - * - * - - - com.github.ua-parser uap-java @@ -92,346 +70,6 @@ - - com.thoughtworks.xstream - xstream - - - * - * - - - - - org.antlr - antlr-runtime - - - * - * - - - - - org.apache.ant - ant - - - * - * - - - - - org.apache.ant - ant-launcher - - - * - * - - - - - org.apache.maven - maven-aether-provider - - - * - * - - - - - org.apache.maven - maven-artifact - - - * - * - - - - - org.apache.maven - maven-compat - - - * - * - - - - - org.apache.maven - maven-core - - - * - * - - - - - org.apache.maven - maven-model - - - * - * - - - - - org.apache.maven - maven-model-builder - - - * - * - - - - - org.apache.maven - maven-plugin-api - - - * - * - - - - - org.apache.maven - maven-repository-metadata - - - * - * - - - - - org.apache.maven - maven-settings - - - * - * - - - - - org.apache.maven - maven-settings-builder - - - * - * - - - - - org.apache.maven - maven-builder-support - - - * - * - - - - - org.apache.maven.wagon - wagon-http - - - * - * - - - - - org.apache.maven.wagon - wagon-http-shared - - - * - * - - - - - org.apache.maven.wagon - wagon-provider-api - - - * - * - - - - - org.codehaus.plexus - plexus-classworlds - - - * - * - - - - - org.codehaus.plexus - plexus-component-annotations - - - * - * - - - - - org.codehaus.plexus - plexus-interpolation - - - * - * - - - - - org.codehaus.plexus - plexus-utils - - - * - * - - - - - org.drools - drools-compiler - - - * - * - - - - - org.drools - drools-core - - - * - * - - - - - org.eclipse.aether - aether-api - - - * - * - - - - - org.eclipse.aether - aether-connector-basic - - - * - * - - - - - org.eclipse.aether - aether-impl - - - * - * - - - - - org.eclipse.aether - aether-spi - - - * - * - - - - - org.eclipse.aether - aether-transport-file - - - * - * - - - - - org.eclipse.aether - aether-transport-http - - - * - * - - - - - org.eclipse.aether - aether-transport-wagon - - - * - * - - - - - org.eclipse.aether - aether-util - - - * - * - - - - - org.eclipse.sisu - org.eclipse.sisu.inject - - - * - * - - - - - org.eclipse.sisu - org.eclipse.sisu.plexus - - - * - * - - - org.freemarker freemarker @@ -452,16 +90,6 @@ - - org.keycloak - keycloak-authz-policy-drools - - - * - * - - - org.keycloak keycloak-common @@ -643,76 +271,6 @@ - - org.kie - kie-api - - - * - * - - - - - org.kie - kie-ci - - - * - * - - - - - org.kie - kie-internal - - - * - * - - - - - org.kie.soup - kie-soup-maven-support - - - * - * - - - - - org.kie.soup - kie-soup-maven-integration - - - * - * - - - - - org.kie.soup - kie-soup-commons - - - * - * - - - - - org.kie.soup - kie-soup-project-datamodel-commons - - - * - * - - - org.liquibase liquibase-core @@ -723,57 +281,6 @@ - - org.mvel - mvel2 - - - * - * - - - - - org.sonatype.plexus - plexus-cipher - - - * - * - - - - - org.sonatype.plexus - plexus-sec-dispatcher - - - * - * - - - - - com.google.inject.extensions - guice-servlet - - - * - * - - - - - com.google.inject - guice - no_aop - - - * - * - - - org.twitter4j twitter4j-core diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/aopalliance/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/aopalliance/main/module.xml deleted file mode 100644 index 752a4ad832e..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/aopalliance/main/module.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/com/thoughtworks/xstream/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/com/thoughtworks/xstream/main/module.xml deleted file mode 100644 index 4b69558ddad..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/com/thoughtworks/xstream/main/module.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/antlr/3.5/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/antlr/3.5/module.xml deleted file mode 100755 index 020b555a1ce..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/antlr/3.5/module.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/ant/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/ant/main/module.xml deleted file mode 100644 index e881721279e..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/ant/main/module.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/maven/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/maven/main/module.xml deleted file mode 100755 index bb50eb54bf1..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/maven/main/module.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/maven/wagon/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/maven/wagon/main/module.xml deleted file mode 100755 index 4f1a9f9d2b3..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/apache/maven/wagon/main/module.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/codehouse/plexus/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/codehouse/plexus/main/module.xml deleted file mode 100755 index d2a4fe884ac..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/codehouse/plexus/main/module.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/drools/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/drools/main/module.xml deleted file mode 100755 index 9c91f88d7e8..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/drools/main/module.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/eclipse/aether/kie/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/eclipse/aether/kie/module.xml deleted file mode 100755 index 0e2d3e8f8bb..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/eclipse/aether/kie/module.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/eclipse/sisu/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/eclipse/sisu/main/module.xml deleted file mode 100755 index ae2e3a3d087..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/eclipse/sisu/main/module.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main/module.xml deleted file mode 100644 index 60dc78a87bb..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main/module.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-server-subsystem/main/server-war/WEB-INF/jboss-deployment-structure.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-server-subsystem/main/server-war/WEB-INF/jboss-deployment-structure.xml index 269afe49c0c..79f3aef1e0f 100755 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-server-subsystem/main/server-war/WEB-INF/jboss-deployment-structure.xml +++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-server-subsystem/main/server-war/WEB-INF/jboss-deployment-structure.xml @@ -18,12 +18,6 @@ - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml index 4b170f344a4..210d9ac70c6 100755 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml +++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml @@ -42,7 +42,6 @@ - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/kie/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/kie/main/module.xml deleted file mode 100644 index efb746f126d..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/kie/main/module.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/mvel/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/mvel/main/module.xml deleted file mode 100755 index cf74e4f304a..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/mvel/main/module.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/sonatype/plexus/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/sonatype/plexus/main/module.xml deleted file mode 100755 index 70881c94fc2..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/sonatype/plexus/main/module.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/sonatype/sisu/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/sonatype/sisu/main/module.xml deleted file mode 100755 index 31106cbb3cb..00000000000 --- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/sonatype/sisu/main/module.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/PoliciesResource.java b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/PoliciesResource.java index 9ced12c2905..2f8af928c3a 100644 --- a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/PoliciesResource.java +++ b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/PoliciesResource.java @@ -84,9 +84,6 @@ public interface PoliciesResource { @Path("aggregate") AggregatePoliciesResource aggregate(); - @Path("rules") - RulePoliciesResource rule(); - @Path("client") ClientPoliciesResource client(); diff --git a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RulePoliciesResource.java b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RulePoliciesResource.java deleted file mode 100644 index 6e05432d715..00000000000 --- a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RulePoliciesResource.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.admin.client.resource; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.jboss.resteasy.annotations.cache.NoCache; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; - -/** - * @author Pedro Igor - */ -public interface RulePoliciesResource { - - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - Response create(RulePolicyRepresentation representation); - - @Path("{id}") - RulePolicyResource findById(@PathParam("id") String id); - - @Path("/search") - @GET - @Produces(MediaType.APPLICATION_JSON) - @NoCache - RulePolicyRepresentation findByName(@QueryParam("name") String name); -} diff --git a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RulePolicyResource.java b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RulePolicyResource.java deleted file mode 100644 index 9efe30b8bfd..00000000000 --- a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RulePolicyResource.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.admin.client.resource; - -import java.util.List; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.annotations.cache.NoCache; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; -import org.keycloak.representations.idm.authorization.PolicyRepresentation; -import org.keycloak.representations.idm.authorization.ResourceRepresentation; - -/** - * @author Pedro Igor - */ -public interface RulePolicyResource { - - @GET - @Produces(MediaType.APPLICATION_JSON) - @NoCache - RulePolicyRepresentation toRepresentation(); - - @PUT - @Consumes(MediaType.APPLICATION_JSON) - void update(RulePolicyRepresentation representation); - - @DELETE - void remove(); - - @Path("/associatedPolicies") - @GET - @Produces(MediaType.APPLICATION_JSON) - @NoCache - List associatedPolicies(); - - @Path("/dependentPolicies") - @GET - @Produces(MediaType.APPLICATION_JSON) - @NoCache - List dependentPolicies(); - - @Path("/resources") - @GET - @Produces("application/json") - @NoCache - List resources(); - -} diff --git a/pom.xml b/pom.xml index 7d59e98a753..920e8d3a99a 100755 --- a/pom.xml +++ b/pom.xml @@ -103,9 +103,6 @@ 5.0.3.Final 25.0-jre - - 7.11.0.Final - 6.1.3.Final @@ -172,6 +169,8 @@ 0.9.14.RELEASE 2.0.0 + + 2.4.0.Final @@ -1186,11 +1185,6 @@ keycloak-authz-client ${project.version} - - org.keycloak - keycloak-authz-policy-drools - ${project.version} - org.keycloak keycloak-authz-policy-common @@ -1481,6 +1475,11 @@ commons-lang3 ${commons-lang3.version} + + org.mvel + mvel2 + ${mvel.version} + diff --git a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/pom.xml b/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/pom.xml deleted file mode 100755 index 016d6648e51..00000000000 --- a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/pom.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - 4.0.0 - - - org.keycloak.testsuite - integration-arquillian-test-apps-photoz-parent - 9.0.0-SNAPSHOT - ../pom.xml - - - photoz-authz-policy - jar - - Keycloak Authz Tests: Photoz Authz Rule-based Policy - - - Photoz Authz Rule-based Policies using JBoss Drools - - - diff --git a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/META-INF/kmodule.xml b/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/META-INF/kmodule.xml deleted file mode 100644 index 842128732ca..00000000000 --- a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/META-INF/kmodule.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.admin/Main.drl b/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.admin/Main.drl deleted file mode 100644 index c807f9b7ab0..00000000000 --- a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.admin/Main.drl +++ /dev/null @@ -1,14 +0,0 @@ -package com.photoz.authz.policy.admin - -import org.keycloak.authorization.policy.evaluation.Evaluation; - -rule "Authorize Admin Resources" - dialect "mvel" - when - $evaluation : Evaluation( - $identity : context.identity, - $identity.hasRealmRole("admin") - ) - then - $evaluation.grant(); -end \ No newline at end of file diff --git a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.resource.owner/Main.drl b/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.resource.owner/Main.drl deleted file mode 100644 index 9378b94882c..00000000000 --- a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.resource.owner/Main.drl +++ /dev/null @@ -1,15 +0,0 @@ -package com.photoz.authz.policy.admin - -import org.keycloak.authorization.policy.evaluation.Evaluation; - -rule "Authorize Resource Owner" - dialect "mvel" - when - $evaluation : Evaluation( - $identity: context.identity, - $permission: permission, - $permission.resource != null && $permission.resource.owner.equals($identity.id) - ) - then - $evaluation.grant(); -end \ No newline at end of file diff --git a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.user/Main.drl b/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.user/Main.drl deleted file mode 100644 index 2ebc457ea46..00000000000 --- a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com.photoz.authz.policy.user/Main.drl +++ /dev/null @@ -1,14 +0,0 @@ -package com.photoz.authz.policy.admin - -import org.keycloak.authorization.policy.evaluation.Evaluation; - -rule "Authorize View User Album" - dialect "mvel" - when - $evaluation : Evaluation( - $identity : context.identity, - $identity.hasRealmRole("user") - ) - then - $evaluation.grant(); -end \ No newline at end of file diff --git a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com/photoz/authz/policy/contextual/Main.drl b/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com/photoz/authz/policy/contextual/Main.drl deleted file mode 100644 index 8a6a772716e..00000000000 --- a/testsuite/integration-arquillian/test-apps/photoz/photoz-authz-policy/src/main/resources/com/photoz/authz/policy/contextual/Main.drl +++ /dev/null @@ -1,15 +0,0 @@ -package com.photoz.authz.policy.admin - -import org.keycloak.authorization.policy.evaluation.Evaluation; - -rule "Authorize Using Context Information" - dialect "mvel" - when - $evaluation : Evaluation( - $attributes: context.attributes, - $attributes.containsValue("kc.identity.authc.method", "otp"), - $attributes.containsValue("someAttribute", "you_can_access") - ) - then - $evaluation.grant(); -end \ No newline at end of file diff --git a/testsuite/integration-arquillian/test-apps/photoz/pom.xml b/testsuite/integration-arquillian/test-apps/photoz/pom.xml index 941da537976..f16ee5568b6 100755 --- a/testsuite/integration-arquillian/test-apps/photoz/pom.xml +++ b/testsuite/integration-arquillian/test-apps/photoz/pom.xml @@ -18,6 +18,5 @@ photoz-restful-api photoz-html5-client - photoz-authz-policy diff --git a/testsuite/integration-arquillian/tests/base/pom.xml b/testsuite/integration-arquillian/tests/base/pom.xml index 647cd9d2ffe..d160a7fddc4 100644 --- a/testsuite/integration-arquillian/tests/base/pom.xml +++ b/testsuite/integration-arquillian/tests/base/pom.xml @@ -116,6 +116,10 @@ ${project.version} classes + + org.mvel + mvel2 + diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/GenericPolicyManagementTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/GenericPolicyManagementTest.java index 745e5a74b65..a41c058608a 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/GenericPolicyManagementTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/GenericPolicyManagementTest.java @@ -54,7 +54,7 @@ import static org.junit.Assert.assertTrue; */ public class GenericPolicyManagementTest extends AbstractAuthorizationTest { - private static final String[] EXPECTED_BUILTIN_POLICY_PROVIDERS = {"test", "user", "role", "rules", "js", "time", "aggregate", "scope", "resource"}; + private static final String[] EXPECTED_BUILTIN_POLICY_PROVIDERS = {"test", "user", "role", "js", "time", "aggregate", "scope", "resource"}; @Test public void testCreate() { @@ -146,10 +146,6 @@ public class GenericPolicyManagementTest extends AbstractAuthorizationTest { assertFalse(providers.isEmpty()); List expected = new ArrayList(Arrays.asList(EXPECTED_BUILTIN_POLICY_PROVIDERS)); - if (!Profile.isFeatureEnabled(Profile.Feature.AUTHZ_DROOLS_POLICY)) { - expected.remove("rules"); - } - assertTrue(providers.containsAll(expected)); } diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/RulesPolicyManagementTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/RulesPolicyManagementTest.java deleted file mode 100644 index 06a04f4cb73..00000000000 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/RulesPolicyManagementTest.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.testsuite.admin.client.authorization; - -import org.junit.BeforeClass; -import org.junit.Test; -import org.keycloak.admin.client.resource.AuthorizationResource; -import org.keycloak.admin.client.resource.RulePoliciesResource; -import org.keycloak.admin.client.resource.RulePolicyResource; -import org.keycloak.common.Profile; -import org.keycloak.representations.idm.authorization.DecisionStrategy; -import org.keycloak.representations.idm.authorization.Logic; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; -import org.keycloak.testsuite.ProfileAssume; -import org.keycloak.testsuite.arquillian.annotation.EnableFeature; -import org.keycloak.testsuite.arquillian.annotation.RestartContainer; -import org.keycloak.testsuite.util.ContainerAssume; - -import javax.ws.rs.NotFoundException; -import javax.ws.rs.core.Response; -import java.util.Collections; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -/** - * @author Pedro Igor - */ -@EnableFeature(Profile.Feature.AUTHZ_DROOLS_POLICY) -public class RulesPolicyManagementTest extends AbstractPolicyManagementTest { - - @BeforeClass - public static void verifyEnvironment() { - ContainerAssume.assumeNotAuthServerUndertow(); - ContainerAssume.assumeNotAuthServerRemote(); - } - - @Test - public void testCreate() { - assertCreated(getClient().authorization(), createDefaultRepresentation("Rule Policy")); - } - - @Test - public void testUpdate() { - AuthorizationResource authorization = getClient().authorization(); - RulePolicyRepresentation representation = createDefaultRepresentation("Update Rule Policy"); - - assertCreated(authorization, representation); - - representation.setName("changed"); - representation.setDescription("changed"); - representation.setDecisionStrategy(DecisionStrategy.AFFIRMATIVE); - representation.setLogic(Logic.POSITIVE); - representation.setScannerPeriod("12"); - representation.setScannerPeriodUnit("Days"); - representation.setModuleName("PhotozAuthzContextualPolicy"); - representation.setSessionName("MainContextualSession"); - - RulePoliciesResource policies = authorization.policies().rule(); - RulePolicyResource policy = policies.findById(representation.getId()); - - policy.update(representation); - - assertRepresentation(representation, policy); - } - - @Test - public void testDelete() { - AuthorizationResource authorization = getClient().authorization(); - RulePolicyRepresentation representation = createDefaultRepresentation("Delete Rule Policy"); - - RulePoliciesResource policies = authorization.policies().rule(); - - try (Response response = policies.create(representation)) { - RulePolicyRepresentation created = response.readEntity(RulePolicyRepresentation.class); - - policies.findById(created.getId()).remove(); - - RulePolicyResource removed = policies.findById(created.getId()); - - try { - removed.toRepresentation(); - fail("Policy not removed"); - } catch (NotFoundException ignore) { - - } - } - } - - private RulePolicyRepresentation createDefaultRepresentation(String name) { - RulePolicyRepresentation representation = new RulePolicyRepresentation(); - - representation.setName(name); - representation.setDescription("description"); - representation.setDecisionStrategy(DecisionStrategy.CONSENSUS); - representation.setLogic(Logic.NEGATIVE); - representation.setArtifactGroupId("org.keycloak.testsuite"); - representation.setArtifactId("photoz-authz-policy"); - representation.setArtifactVersion(System.getProperty("project.version")); - representation.setModuleName("PhotozAuthzOwnerPolicy"); - representation.setSessionName("MainOwnerSession"); - representation.setScannerPeriod("1"); - representation.setScannerPeriodUnit("Minutes"); - - return representation; - } - - private void assertCreated(AuthorizationResource authorization, RulePolicyRepresentation representation) { - RulePoliciesResource permissions = authorization.policies().rule(); - - try (Response response = permissions.create(representation)) { - RulePolicyRepresentation created = response.readEntity(RulePolicyRepresentation.class); - RulePolicyResource permission = permissions.findById(created.getId()); - assertRepresentation(representation, permission); - } - } - - private void assertRepresentation(RulePolicyRepresentation expected, RulePolicyResource policy) { - RulePolicyRepresentation actual = policy.toRepresentation(); - assertRepresentation(expected, actual, policy::resources, Collections::emptyList, policy::associatedPolicies); - assertEquals(expected.getName(), actual.getName()); - assertEquals(expected.getDescription(), actual.getDescription()); - assertEquals(expected.getLogic(), actual.getLogic()); - assertEquals(expected.getArtifactGroupId(), actual.getArtifactGroupId()); - assertEquals(expected.getArtifactId(), actual.getArtifactId()); - assertEquals(expected.getArtifactVersion(), actual.getArtifactVersion()); - assertEquals(expected.getModuleName(), actual.getModuleName()); - assertEquals(expected.getSessionName(), actual.getSessionName()); - assertEquals(expected.getScannerPeriod(), actual.getScannerPeriod()); - assertEquals(expected.getScannerPeriodUnit(), actual.getScannerPeriodUnit()); - } -} diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/permission/ResourcePermissionForm.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/permission/ResourcePermissionForm.java index 50738dd6190..e8f1a1fe9bd 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/permission/ResourcePermissionForm.java +++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/permission/ResourcePermissionForm.java @@ -26,7 +26,6 @@ import org.keycloak.representations.idm.authorization.GroupPolicyRepresentation; import org.keycloak.representations.idm.authorization.JSPolicyRepresentation; import org.keycloak.representations.idm.authorization.ResourcePermissionRepresentation; import org.keycloak.representations.idm.authorization.RolePolicyRepresentation; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; import org.keycloak.representations.idm.authorization.TimePolicyRepresentation; import org.keycloak.representations.idm.authorization.UserPolicyRepresentation; import org.keycloak.testsuite.console.page.clients.authorization.policy.ClientPolicy; @@ -34,7 +33,6 @@ import org.keycloak.testsuite.console.page.clients.authorization.policy.GroupPol import org.keycloak.testsuite.console.page.clients.authorization.policy.JSPolicy; import org.keycloak.testsuite.console.page.clients.authorization.policy.PolicySelect; import org.keycloak.testsuite.console.page.clients.authorization.policy.RolePolicy; -import org.keycloak.testsuite.console.page.clients.authorization.policy.RulePolicy; import org.keycloak.testsuite.console.page.clients.authorization.policy.TimePolicy; import org.keycloak.testsuite.console.page.clients.authorization.policy.UserPolicy; import org.keycloak.testsuite.console.page.fragment.ModalDialog; @@ -96,9 +94,6 @@ public class ResourcePermissionForm extends Form { @Page private TimePolicy timePolicy; - @Page - private RulePolicy rulePolicy; - @Page private GroupPolicy groupPolicy; @@ -161,8 +156,6 @@ public class ResourcePermissionForm extends Form { jsPolicy.form().populate((JSPolicyRepresentation) expected, true); } else if ("time".equalsIgnoreCase(expected.getType())) { timePolicy.form().populate((TimePolicyRepresentation) expected, true); - } else if ("rules".equalsIgnoreCase(expected.getType())) { - rulePolicy.form().populate((RulePolicyRepresentation) expected, true); } else if ("group".equalsIgnoreCase(expected.getType())) { groupPolicy.form().populate((GroupPolicyRepresentation) expected, true); } diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/permission/ScopePermissionForm.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/permission/ScopePermissionForm.java index 9733c190f20..f7947c77690 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/permission/ScopePermissionForm.java +++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/permission/ScopePermissionForm.java @@ -28,7 +28,6 @@ import org.keycloak.representations.idm.authorization.DecisionStrategy; import org.keycloak.representations.idm.authorization.GroupPolicyRepresentation; import org.keycloak.representations.idm.authorization.JSPolicyRepresentation; import org.keycloak.representations.idm.authorization.RolePolicyRepresentation; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; import org.keycloak.representations.idm.authorization.ScopePermissionRepresentation; import org.keycloak.representations.idm.authorization.TimePolicyRepresentation; import org.keycloak.representations.idm.authorization.UserPolicyRepresentation; @@ -37,7 +36,6 @@ import org.keycloak.testsuite.console.page.clients.authorization.policy.GroupPol import org.keycloak.testsuite.console.page.clients.authorization.policy.JSPolicy; import org.keycloak.testsuite.console.page.clients.authorization.policy.PolicySelect; import org.keycloak.testsuite.console.page.clients.authorization.policy.RolePolicy; -import org.keycloak.testsuite.console.page.clients.authorization.policy.RulePolicy; import org.keycloak.testsuite.console.page.clients.authorization.policy.TimePolicy; import org.keycloak.testsuite.console.page.clients.authorization.policy.UserPolicy; import org.keycloak.testsuite.console.page.fragment.ModalDialog; @@ -102,9 +100,6 @@ public class ScopePermissionForm extends Form { @Page private TimePolicy timePolicy; - @Page - private RulePolicy rulePolicy; - @Page private GroupPolicy groupPolicy; @@ -173,8 +168,6 @@ public class ScopePermissionForm extends Form { jsPolicy.form().populate((JSPolicyRepresentation) expected, true); } else if ("time".equalsIgnoreCase(expected.getType())) { timePolicy.form().populate((TimePolicyRepresentation) expected, true); - } else if ("rules".equalsIgnoreCase(expected.getType())) { - rulePolicy.form().populate((RulePolicyRepresentation) expected, true); } else if ("group".equalsIgnoreCase(expected.getType())) { groupPolicy.form().populate((GroupPolicyRepresentation) expected, true); } diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/AggregatePolicyForm.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/AggregatePolicyForm.java index 800f93b3992..da1e1ab748a 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/AggregatePolicyForm.java +++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/AggregatePolicyForm.java @@ -28,7 +28,6 @@ import org.keycloak.representations.idm.authorization.GroupPolicyRepresentation; import org.keycloak.representations.idm.authorization.JSPolicyRepresentation; import org.keycloak.representations.idm.authorization.Logic; import org.keycloak.representations.idm.authorization.RolePolicyRepresentation; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; import org.keycloak.representations.idm.authorization.TimePolicyRepresentation; import org.keycloak.representations.idm.authorization.UserPolicyRepresentation; import org.keycloak.testsuite.console.page.fragment.ModalDialog; @@ -79,9 +78,6 @@ public class AggregatePolicyForm extends Form { @Page private TimePolicy timePolicy; - @Page - private RulePolicy rulePolicy; - @Page private GroupPolicy groupPolicy; @@ -150,8 +146,6 @@ public class AggregatePolicyForm extends Form { jsPolicy.form().populate((JSPolicyRepresentation) expected, true); } else if ("time".equalsIgnoreCase(expected.getType())) { timePolicy.form().populate((TimePolicyRepresentation) expected, true); - } else if ("rules".equalsIgnoreCase(expected.getType())) { - rulePolicy.form().populate((RulePolicyRepresentation) expected, true); } else if ("group".equalsIgnoreCase(expected.getType())) { groupPolicy.form().populate((GroupPolicyRepresentation) expected, true); } diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/Policies.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/Policies.java index 31c5b993bdb..37c8b99909f 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/Policies.java +++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/Policies.java @@ -24,7 +24,6 @@ import org.keycloak.representations.idm.authorization.GroupPolicyRepresentation; import org.keycloak.representations.idm.authorization.JSPolicyRepresentation; import org.keycloak.representations.idm.authorization.PolicyRepresentation; import org.keycloak.representations.idm.authorization.RolePolicyRepresentation; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; import org.keycloak.representations.idm.authorization.TimePolicyRepresentation; import org.keycloak.representations.idm.authorization.UserPolicyRepresentation; import org.keycloak.testsuite.console.page.fragment.ModalDialog; @@ -63,9 +62,6 @@ public class Policies extends Form { @Page private TimePolicy timePolicy; - @Page - private RulePolicy rulePolicy; - @Page private ClientPolicy clientPolicy; @@ -99,9 +95,6 @@ public class Policies extends Form { } else if ("time".equals(type)) { timePolicy.form().populate((TimePolicyRepresentation) expected, save); return (P) timePolicy; - } else if ("rules".equals(type)) { - rulePolicy.form().populate((RulePolicyRepresentation) expected, save); - return (P) rulePolicy; } else if ("client".equals(type)) { clientPolicy.form().populate((ClientPolicyRepresentation) expected, save); return (P) clientPolicy; @@ -134,8 +127,6 @@ public class Policies extends Form { jsPolicy.form().populate((JSPolicyRepresentation) representation, true); } else if ("time".equals(type)) { timePolicy.form().populate((TimePolicyRepresentation) representation, true); - } else if ("rules".equals(type)) { - rulePolicy.form().populate((RulePolicyRepresentation) representation, true); } else if ("client".equals(type)) { clientPolicy.form().populate((ClientPolicyRepresentation) representation, true); } else if ("group".equals(type)) { @@ -163,8 +154,6 @@ public class Policies extends Form { return (P) jsPolicy; } else if ("time".equals(type)) { return (P) timePolicy; - } else if ("rules".equals(type)) { - return (P) rulePolicy; } else if ("client".equals(type)) { return (P) clientPolicy; } else if ("group".equals(type)) { @@ -193,8 +182,6 @@ public class Policies extends Form { jsPolicy.form().delete(); } else if ("time".equals(type)) { timePolicy.form().delete(); - } else if ("rules".equals(type)) { - rulePolicy.form().delete(); } else if ("client".equals(type)) { clientPolicy.form().delete(); } else if ("group".equals(type)) { diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/RulePolicy.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/RulePolicy.java deleted file mode 100644 index 706b2bf3a19..00000000000 --- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/RulePolicy.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.testsuite.console.page.clients.authorization.policy; - -import org.jboss.arquillian.graphene.page.Page; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; - -/** - * @author Pedro Igor - */ -public class RulePolicy implements PolicyTypeUI { - - @Page - private RulePolicyForm form; - - public RulePolicyForm form() { - return form; - } - - public RulePolicyRepresentation toRepresentation() { - return form.toRepresentation(); - } - - public void update(RulePolicyRepresentation expected) { - form().populate(expected, true); - } -} diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/RulePolicyForm.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/RulePolicyForm.java deleted file mode 100644 index 901a9f4479b..00000000000 --- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/clients/authorization/policy/RulePolicyForm.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.testsuite.console.page.clients.authorization.policy; - -import org.keycloak.representations.idm.authorization.Logic; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; -import org.keycloak.testsuite.console.page.fragment.ModalDialog; -import org.keycloak.testsuite.page.Form; -import org.keycloak.testsuite.util.UIUtils; -import org.keycloak.testsuite.util.WaitUtils; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.support.FindBy; -import org.openqa.selenium.support.ui.Select; - -import java.util.concurrent.TimeUnit; - -import static org.jboss.arquillian.graphene.Graphene.waitGui; -import static org.keycloak.testsuite.util.UIUtils.clickLink; -import static org.keycloak.testsuite.util.UIUtils.getTextFromElement; -import static org.openqa.selenium.By.id; - -/** - * @author Pedro Igor - */ -public class RulePolicyForm extends Form { - - @FindBy(id = "name") - private WebElement name; - - @FindBy(id = "description") - private WebElement description; - - @FindBy(id = "artifactGroupId") - private WebElement artifactGroupId; - - @FindBy(id = "artifactId") - private WebElement artifactId; - - @FindBy(id = "artifactVersion") - private WebElement artifactVersion; - - @FindBy(id = "moduleName") - private Select moduleName; - - @FindBy(id = "sessionName") - private Select sessionName; - - @FindBy(id = "scannerPeriod") - private WebElement scannerPeriod; - - @FindBy(id = "scannerPeriodUnit") - private Select scannerPeriodUnit; - - @FindBy(id = "logic") - private Select logic; - - @FindBy(xpath = "//i[contains(@class,'pficon-delete')]") - private WebElement deleteButton; - - @FindBy(xpath = "//div[@class='modal-dialog']") - protected ModalDialog modalDialog; - - @FindBy(id = "resolveModule") - private WebElement resolveModuleButton; - - public void populate(RulePolicyRepresentation expected, boolean save) { - UIUtils.setTextInputValue(name, expected.getName()); - UIUtils.setTextInputValue(description, expected.getDescription()); - UIUtils.setTextInputValue(artifactGroupId, expected.getArtifactGroupId()); - UIUtils.setTextInputValue(artifactId, expected.getArtifactId()); - UIUtils.setTextInputValue(artifactVersion, expected.getArtifactVersion()); - - clickLink(resolveModuleButton); - waitGui().withTimeout(150, TimeUnit.SECONDS).until().element(id("moduleName")).is().enabled(); // The module load time could be long at some conditions - - moduleName.selectByVisibleText(expected.getModuleName()); - WaitUtils.pause(1000); - - sessionName.selectByVisibleText(expected.getSessionName()); - - UIUtils.setTextInputValue(scannerPeriod, expected.getScannerPeriod()); - scannerPeriodUnit.selectByVisibleText(expected.getScannerPeriodUnit()); - logic.selectByValue(expected.getLogic().name()); - - if (save) { - save(); - } - } - - public void delete() { - deleteButton.click(); - modalDialog.confirmDeletion(); - } - - public RulePolicyRepresentation toRepresentation() { - RulePolicyRepresentation representation = new RulePolicyRepresentation(); - - representation.setName(UIUtils.getTextInputValue(name)); - representation.setDescription(UIUtils.getTextInputValue(description)); - representation.setLogic(Logic.valueOf(UIUtils.getTextFromElement(logic.getFirstSelectedOption()).toUpperCase())); - representation.setArtifactGroupId(UIUtils.getTextInputValue(artifactGroupId)); - representation.setArtifactId(UIUtils.getTextInputValue(artifactId)); - representation.setArtifactVersion(UIUtils.getTextInputValue(artifactVersion)); - representation.setModuleName(getTextFromElement(moduleName.getFirstSelectedOption())); - representation.setSessionName(getTextFromElement(sessionName.getFirstSelectedOption())); - representation.setScannerPeriod(UIUtils.getTextInputValue(scannerPeriod)); - representation.setScannerPeriodUnit(getTextFromElement(scannerPeriodUnit.getFirstSelectedOption())); - - return representation; - } -} \ No newline at end of file diff --git a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authorization/AggregatePolicyManagementTest.java b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authorization/AggregatePolicyManagementTest.java index a2e16059b2e..6d30d81e6af 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authorization/AggregatePolicyManagementTest.java +++ b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authorization/AggregatePolicyManagementTest.java @@ -40,7 +40,6 @@ import org.keycloak.representations.idm.authorization.GroupPolicyRepresentation; import org.keycloak.representations.idm.authorization.JSPolicyRepresentation; import org.keycloak.representations.idm.authorization.Logic; import org.keycloak.representations.idm.authorization.RolePolicyRepresentation; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; import org.keycloak.representations.idm.authorization.TimePolicyRepresentation; import org.keycloak.representations.idm.authorization.UserPolicyRepresentation; import org.keycloak.testsuite.arquillian.annotation.EnableFeature; @@ -232,22 +231,6 @@ public class AggregatePolicyManagementTest extends AbstractAuthorizationSettings policy.createPolicy(childTimePolicy); expected.addPolicy(childTimePolicy.getName()); - if (Profile.isFeatureEnabled(Profile.Feature.AUTHZ_DROOLS_POLICY)) { - RulePolicyRepresentation rulePolicy = new RulePolicyRepresentation(); - - rulePolicy.setName(UUID.randomUUID().toString()); - rulePolicy.setDescription("description"); - rulePolicy.setArtifactGroupId("org.keycloak.testsuite"); - rulePolicy.setArtifactId("photoz-authz-policy"); - rulePolicy.setArtifactVersion(System.getProperty("project.version")); - rulePolicy.setModuleName("PhotozAuthzOwnerPolicy"); - rulePolicy.setSessionName("MainOwnerSession"); - rulePolicy.setScannerPeriod("1"); - rulePolicy.setScannerPeriodUnit("Minutes"); - policy.createPolicy(rulePolicy); - expected.addPolicy(rulePolicy.getName()); - } - GroupPolicyRepresentation childGroupPolicy = new GroupPolicyRepresentation(); childGroupPolicy.setName(UUID.randomUUID().toString()); diff --git a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authorization/RulePolicyManagementTest.java b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authorization/RulePolicyManagementTest.java deleted file mode 100644 index 765181df298..00000000000 --- a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/authorization/RulePolicyManagementTest.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2016 Red Hat, Inc. and/or its affiliates - * and other contributors as indicated by the @author tags. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.keycloak.testsuite.console.authorization; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import org.junit.Test; -import org.keycloak.common.Profile; -import org.keycloak.representations.idm.authorization.Logic; -import org.keycloak.representations.idm.authorization.RulePolicyRepresentation; -import org.keycloak.testsuite.ProfileAssume; -import org.keycloak.testsuite.console.page.clients.authorization.policy.RulePolicy; - -/** - * @author Pedro Igor - */ -public class RulePolicyManagementTest extends AbstractAuthorizationSettingsTest { - - @Test - public void testUpdate() { - ProfileAssume.assumeFeatureEnabled(Profile.Feature.AUTHZ_DROOLS_POLICY); - authorizationPage.navigateTo(); - RulePolicyRepresentation expected = createDefaultRepresentation("Test Rule Policy"); - - expected = createPolicy(expected); - - String previousName = expected.getName(); - - expected.setName("Changed " + previousName); - expected.setDescription("Changed description"); - expected.setLogic(Logic.NEGATIVE); - expected.setModuleName("PhotozAuthzContextualPolicy"); - expected.setSessionName("MainContextualSession"); - expected.setScannerPeriod("12"); - expected.setScannerPeriodUnit("Days"); - - - authorizationPage.navigateTo(); - authorizationPage.authorizationTabs().policies().update(previousName, expected); - assertAlertSuccess(); - - authorizationPage.navigateTo(); - RulePolicy actual = authorizationPage.authorizationTabs().policies().name(expected.getName()); - - assertPolicy(expected, actual); - } - - @Test - public void testDelete() { - ProfileAssume.assumeFeatureEnabled(Profile.Feature.AUTHZ_DROOLS_POLICY); - authorizationPage.navigateTo(); - RulePolicyRepresentation expected =createDefaultRepresentation("Delete Rule Policy"); - - expected = createPolicy(expected); - authorizationPage.navigateTo(); - authorizationPage.authorizationTabs().policies().delete(expected.getName()); - assertAlertSuccess(); - authorizationPage.navigateTo(); - assertNull(authorizationPage.authorizationTabs().policies().policies().findByName(expected.getName())); - } - - @Test - public void testDeleteFromList() { - ProfileAssume.assumeFeatureEnabled(Profile.Feature.AUTHZ_DROOLS_POLICY); - authorizationPage.navigateTo(); - RulePolicyRepresentation expected =createDefaultRepresentation("Delete Rule Policy"); - - expected = createPolicy(expected); - authorizationPage.navigateTo(); - authorizationPage.authorizationTabs().policies().deleteFromList(expected.getName()); - authorizationPage.navigateTo(); - assertNull(authorizationPage.authorizationTabs().policies().policies().findByName(expected.getName())); - } - - private RulePolicyRepresentation createDefaultRepresentation(String name) { - RulePolicyRepresentation expected = new RulePolicyRepresentation(); - - expected.setName(name); - expected.setDescription("description"); - expected.setArtifactGroupId("org.keycloak.testsuite"); - expected.setArtifactId("photoz-authz-policy"); - expected.setArtifactVersion(System.getProperty("project.version")); - expected.setModuleName("PhotozAuthzOwnerPolicy"); - expected.setSessionName("MainOwnerSession"); - expected.setScannerPeriod("1"); - expected.setScannerPeriodUnit("Minutes"); - - return expected; - } - - private RulePolicyRepresentation createPolicy(RulePolicyRepresentation expected) { - RulePolicy policy = authorizationPage.authorizationTabs().policies().create(expected); - assertAlertSuccess(); - return assertPolicy(expected, policy); - } - - private RulePolicyRepresentation assertPolicy(RulePolicyRepresentation expected, RulePolicy policy) { - RulePolicyRepresentation actual = policy.toRepresentation(); - - assertEquals(expected.getName(), actual.getName()); - assertEquals(expected.getDescription(), actual.getDescription()); - assertEquals(expected.getLogic(), actual.getLogic()); - assertEquals(expected.getArtifactGroupId(), actual.getArtifactGroupId()); - assertEquals(expected.getArtifactId(), actual.getArtifactId()); - assertEquals(expected.getArtifactVersion(), actual.getArtifactVersion()); - assertEquals(expected.getModuleName(), actual.getModuleName()); - assertEquals(expected.getSessionName(), actual.getSessionName()); - assertEquals(expected.getScannerPeriod(), actual.getScannerPeriod()); - assertEquals(expected.getScannerPeriodUnit(), actual.getScannerPeriodUnit()); - - return actual; - } -} diff --git a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_ja.properties b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_ja.properties index 69717072c3a..edc6764abfd 100644 --- a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_ja.properties +++ b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_ja.properties @@ -1314,21 +1314,6 @@ authz-policy-time-hour=時 authz-policy-time-hour.tooltip=ポリシーが許可される時を定義します。2番目のフィールドに値を入力して範囲を指定することもできます。この場合、現在の時が指定した2つの値の間にあるか、等しい場合のみ許可されます。 authz-policy-time-minute=分 authz-policy-time-minute.tooltip=ポリシーが許可される分を定義します。2番目のフィールドに値を入力して範囲を指定することもできます。この場合、現在の分が指定した2つの値の間にあるか、等しい場合のみ許可されます。 -# Authz Drools Policy Detail -authz-add-drools-policy=ルールポリシーの追加 -authz-policy-drools-maven-artifact-resolve=解決 -authz-policy-drools-maven-artifact=ポリシー Maven アーティファクト -authz-policy-drools-maven-artifact.tooltip=ルールの読み込む先となるアーティファクトを示す Maven GAV を設定します。GAV を提供し 「解決」 をクリックすることで、 「モジュール」 と 「セッション」 フィールドを読み込みます。 -authz-policy-drools-module=モジュール -authz-policy-drools-module.tooltip=このポリシーで使用されるモジュールです。ルールの読み込み先から特定のセッションを選択するにはモジュールを提供する必要があります。 -authz-policy-drools-session=セッション -authz-policy-drools-session.tooltip=このポリシーで使用されるセッションです。セッションは、ポリシーを処理する際に評価するすべてのルールを提供します。 -authz-policy-drools-update-period=更新周期 -authz-policy-drools-update-period.tooltip=アーティファクトの更新をスキャンする間隔を指定します。 -# Authz JS Policy Detail -authz-add-js-policy=JavaScript ポリシーの追加 -authz-policy-js-code=コード -authz-policy-js-code.tooltip=このポリシーの条件を提供する JavaScript コードを設定します。 # Authz Aggregated Policy Detail authz-aggregated=集約 authz-add-aggregated-policy=集約ポリシーの追加 diff --git a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_lt.properties b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_lt.properties index 71c5595aed4..8e46d56cf95 100644 --- a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_lt.properties +++ b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_lt.properties @@ -1102,18 +1102,6 @@ authz-policy-time-hour.tooltip=Nurodykite valandą iki kurios ši taisyklė TENK authz-policy-time-minute=Minutė authz-policy-time-minute.tooltip=Nurodykite minutę iki kurios ši taisyklė TENKINAMA. Užpildžius antrąjį laukelį, taisyklė bus TENKINAMA jei minutė patenka į nurodytą intervalą. Reikšmės nurodomos imtinai. -# Authz Drools Policy Detail -authz-add-drools-policy=Pridėti Rules taisyklę -authz-policy-drools-maven-artifact-resolve=Išspręsti -authz-policy-drools-maven-artifact=Maven taisyklės artefaktas -authz-policy-drools-maven-artifact.tooltip=Nuoroda į Maven GAV artifaktą kuriame aprašytos taisyklės. Kai tik nurodysite GAV, galite paspausti *Išspręsti* tam kad įkelti *Modulis* ir *Sesija* laukus. -authz-policy-drools-module=Modulis -authz-policy-drools-module.tooltip=Šioje taisyklėje naudojamas modulis. Privalote nurodyti modulį tam, kad galėtumėte pasirinkti specifinę sesiją taisyklių įkėlimui. -authz-policy-drools-session=Sesija -authz-policy-drools-session.tooltip=Šioje taisyklėje naudojama sesija. Sesija teikia taisykles reikalingas šios taisyklės vykdymui. -authz-policy-drools-update-period=Atnaujinimo intervalas -authz-policy-drools-update-period.tooltip=Nurodykite laiko intervalą, kas kurį turi būti ieškoma artefakto atnaujinimų. - # Authz JS Policy Detail authz-add-js-policy=Pridėti JavaScript taisyklę authz-policy-js-code=Programinis kodas diff --git a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_no.properties b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_no.properties index 3731b9afd03..d2f1530f2ad 100644 --- a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_no.properties +++ b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_no.properties @@ -1060,18 +1060,6 @@ authz-policy-time-not-before.tooltip=Definerer tiden f\u00F8r policien M\u00C5 I authz-policy-time-not-on-after=Ikke p\u00E5 eller etter authz-policy-time-not-on-after.tooltip=Definerer tiden etter en policy M\u00C5 IKKE innvilges. Denne innvilges kun om gjeldende dato/tid er f\u00F8r eller lik denne verdien. - # Authz Drools Policy Detail -authz-add-drools-policy=Legg til Rules policy -authz-policy-drools-maven-artifact-resolve=L\u00F8s -authz-policy-drools-maven-artifact=Policy for Maven artefakt. -authz-policy-drools-maven-artifact.tooltip=Et Maven GAV som peker til et artefakt hvor reglene vil bli lastet fra. Med en gang du har gitt GAV kan du klikke *L\u00F8s* for \u00E5 laste felter for b\u00E5de *Modul* og *Sesjon* -authz-policy-drools-module=Modul -authz-policy-drools-module.tooltip=Modulen som brukes av denne policien. Du m\u00E5 oppgi en modul for \u00E5 velge en bestemt \u00F8kt der reglene vil bli lastet fra. -authz-policy-drools-session=Sesjon -authz-policy-drools-session.tooltip=Sesjonen brukt av denne policien. Sesjonen vil gi alle regler for evaluering ved prosessering av policien. -authz-policy-drools-update-period=Oppdater periode -authz-policy-drools-update-period.tooltip=Spesifiserer et intervall for \u00E5 skanne etter oppdateringer for artefakter. - # Authz JS Policy Detail authz-add-js-policy=Legg til policy for JavaScript authz-policy-js-code=Kode diff --git a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_pt_BR.properties b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_pt_BR.properties index 0c7300b685f..ebdada81957 100644 --- a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_pt_BR.properties +++ b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_pt_BR.properties @@ -773,14 +773,6 @@ authz-no-users-assigned=Nenhum usuário associado authz-add-time-policy=Adicionar política de tempo authz-policy-time-not-on-after=Não em ou depois -# Authz Drools Policy Detail -authz-add-drools-policy=Adicionar política Rules -authz-policy-drools-maven-artifact-resolve=Resolver -authz-policy-drools-maven-artifact=Artefato maven de política -authz-policy-drools-module=Módulo -authz-policy-drools-session=Sessão -authz-policy-drools-update-period=Atualizar período - # Authz JS Policy Detail authz-add-js-policy=Adicionar política Javascript authz-policy-js-code=Código @@ -1073,10 +1065,6 @@ authz-policy-decision-strategy.tooltip=The decision strategy dictates how the po authz-policy-user-users.tooltip=Specifies which user(s) are allowed by this policy. authz-policy-time-not-before.tooltip=Defines the time before which the policy MUST NOT be granted. Only granted if current date/time is after or equal to this value. authz-policy-time-not-on-after.tooltip=Defines the time after which the policy MUST NOT be granted. Only granted if current date/time is before or equal to this value. -authz-policy-drools-maven-artifact.tooltip=A Maven GAV pointing to an artifact from where the rules would be loaded from. Once you have provided the GAV, you can click *Resolve* to load both *Module* and *Session* fields. -authz-policy-drools-module.tooltip=The module used by this policy. You must provide a module in order to select a specific session from where rules will be loaded from. -authz-policy-drools-session.tooltip=The session used by this policy. The session provides all the rules to evaluate when processing the policy. -authz-policy-drools-update-period.tooltip=Specifies an interval for scanning for artifact updates. authz-policy-js-code.tooltip=The JavaScript code providing the conditions for this policy. authz-permission-name.tooltip=The name of this permission. authz-permission-description.tooltip=A description for this permission. diff --git a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_ru.properties b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_ru.properties index e67ff0aa667..2084e7fbbd9 100644 --- a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_ru.properties +++ b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_ru.properties @@ -1155,18 +1155,6 @@ authz-policy-time-hour.tooltip=Определяет час, в который п authz-policy-time-minute=Минута authz-policy-time-minute.tooltip=Определяет минуту, в которую политика ДОЛЖНА быть разрешена. Вы также можете определить диапазон, заполнив второе поле. В этом случае разрешение выдается только если текущая минута равна или находится между заданными значениями. -# Authz Drools Policy Detail -authz-add-drools-policy=Добавить правила политики -authz-policy-drools-maven-artifact-resolve=Разрешить -authz-policy-drools-maven-artifact=Maven артифакт политики -authz-policy-drools-maven-artifact.tooltip=Maven GAV, указывающий на артифакт, из которого должны будут загружены правила. Определив GAV, Вы можете нажать *Разрешить*, чтобы заполнить *Модуль* и *Сессия* поля. -authz-policy-drools-module=Модуль -authz-policy-drools-module.tooltip=Модуль, используемый этой политикой. Вам необходимо предоставить модуль в порядке выбора конкретной сессии, из которой будут загружены правила. -authz-policy-drools-session=Сессия -authz-policy-drools-session.tooltip=Сессия, используемая этой политикой. Сессия предоставляет все правила для оценок при обработке политики. -authz-policy-drools-update-period=Период обновлений -authz-policy-drools-update-period.tooltip=Определите интервал для поиска обновлений артефакта. - # Authz JS Policy Detail authz-add-js-policy=Добавить политику JavaScript authz-policy-js-code=Код diff --git a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_zh_CN.properties b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_zh_CN.properties index 3d596b8f093..50d6de90ec9 100644 --- a/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_zh_CN.properties +++ b/themes/src/main/resources-community/theme/base/admin/messages/admin-messages_zh_CN.properties @@ -1104,18 +1104,6 @@ authz-policy-time-hour.tooltip =定义策略必须被授予的小时。您还可 authz-policy-time-minute =分钟 authz-policy-time-minute.tooltip =定义策略必须被授予的分钟。您还可以通过填充第二个字段来提供范围。在这种情况下,仅当当前分钟介于或等于您提供的两个值之间时才会授予权限。 -#Authz Drools策略详细信息 -authz-add-drools-policy =添加Drools策略 -authz-policy-drools-maven-artifact-resolve =解决 -authz-policy-drools-maven-artifact =策略Maven神器 -authz-policy-drools-maven-artifact.tooltip =指向从其中加载规则的工件的Maven GAV。一旦您提供了GAV,您可以点击* Resolve *来加载* Module *和* Session *字段。 -authz-policy-drools-module = Module -authz-policy-drools-module.tooltip =此策略使用的模块。您必须提供一个模块,以便选择将从中加载规则的特定会话。 -authz-policy-drools-session =会话 -authz-policy-drools-session.tooltip =此策略使用的会话。会话提供处理策略时评估的所有规则。 -authz-policy-drools-update-period =更新周期 -authz-policy-drools-update-period.tooltip =指定扫描工件更新的时间间隔。 - #Authz JS策略详细信息 authz-add-js-policy =添加JavaScript策略 authz-policy-js-code =代码 diff --git a/themes/src/main/resources/theme/base/admin/messages/admin-messages_en.properties b/themes/src/main/resources/theme/base/admin/messages/admin-messages_en.properties index ae3eae32b66..d1bd1774777 100644 --- a/themes/src/main/resources/theme/base/admin/messages/admin-messages_en.properties +++ b/themes/src/main/resources/theme/base/admin/messages/admin-messages_en.properties @@ -1411,17 +1411,6 @@ authz-policy-time-hour=Hour authz-policy-time-hour.tooltip=Defines the hour when the policy MUST be granted. You can also provide a range by filling the second field. In this case, permission is granted only if current hour is between or equal to the two values you provided. authz-policy-time-minute=Minute authz-policy-time-minute.tooltip=Defines the minute when the policy MUST be granted. You can also provide a range by filling the second field. In this case, permission is granted only if current minute is between or equal to the two values you provided. -# Authz Drools Policy Detail -authz-add-drools-policy=Add Rules Policy -authz-policy-drools-maven-artifact-resolve=Resolve -authz-policy-drools-maven-artifact=Policy Maven Artifact -authz-policy-drools-maven-artifact.tooltip=A Maven GAV pointing to an artifact from which the rules would be loaded. Once you have provided the GAV, you can click *Resolve* to load both *Module* and *Session* fields. -authz-policy-drools-module=Module -authz-policy-drools-module.tooltip=The module used by this policy. You must provide a module in order to select a specific session from which the rules will be loaded. -authz-policy-drools-session=Session -authz-policy-drools-session.tooltip=The session used by this policy. The session provides all the rules to evaluate when processing the policy. -authz-policy-drools-update-period=Update Period -authz-policy-drools-update-period.tooltip=Specifies an interval for scanning for artifact updates. # Authz JS Policy Detail authz-add-js-policy=Add JavaScript Policy authz-policy-js-code=Code diff --git a/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-app.js b/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-app.js index 24e0152fcf2..338cde37cd0 100644 --- a/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-app.js +++ b/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-app.js @@ -192,28 +192,6 @@ module.config(['$routeProvider', function ($routeProvider) { } }, controller: 'ResourceServerPolicyCtrl' - }).when('/realms/:realm/clients/:client/authz/resource-server/policy/rules/create', { - templateUrl: resourceUrl + '/partials/authz/policy/provider/resource-server-policy-drools-detail.html', - resolve: { - realm: function (RealmLoader) { - return RealmLoader(); - }, - client : function(ClientLoader) { - return ClientLoader(); - } - }, - controller: 'ResourceServerPolicyDroolsDetailCtrl' - }).when('/realms/:realm/clients/:client/authz/resource-server/policy/rules/:id', { - templateUrl: resourceUrl + '/partials/authz/policy/provider/resource-server-policy-drools-detail.html', - resolve: { - realm: function (RealmLoader) { - return RealmLoader(); - }, - client : function(ClientLoader) { - return ClientLoader(); - } - }, - controller: 'ResourceServerPolicyDroolsDetailCtrl' }).when('/realms/:realm/clients/:client/authz/resource-server/permission/resource/create', { templateUrl: resourceUrl + '/partials/authz/permission/provider/resource-server-policy-resource-detail.html', resolve: { diff --git a/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-controller.js b/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-controller.js index 5609e478c81..07f06129753 100644 --- a/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-controller.js +++ b/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-controller.js @@ -900,59 +900,6 @@ module.controller('ResourceServerPermissionCtrl', function($scope, $http, $route }; }); -module.controller('ResourceServerPolicyDroolsDetailCtrl', function($scope, $http, $route, realm, client, PolicyController) { - PolicyController.onInit({ - getPolicyType : function() { - return "rules"; - }, - - onInit : function() { - $scope.drools = {}; - - $scope.resolveModules = function(policy) { - if (!policy) { - policy = $scope.policy; - } - - delete policy.config; - - $http.post(authUrl + '/admin/realms/'+ $route.current.params.realm + '/clients/' + client.id + '/authz/resource-server/policy/rules/provider/resolveModules' - , policy).then(function(response) { - $scope.drools.moduleNames = response.data; - $scope.resolveSessions(); - }); - } - - $scope.resolveSessions = function() { - delete $scope.policy.config; - - $http.post(authUrl + '/admin/realms/'+ $route.current.params.realm + '/clients/' + client.id + '/authz/resource-server/policy/rules/provider/resolveSessions' - , $scope.policy).then(function(response) { - $scope.drools.moduleSessions = response.data; - }); - } - }, - - onInitUpdate : function(policy) { - policy.scannerPeriod = parseInt(policy.scannerPeriod); - $scope.resolveModules(policy); - }, - - onUpdate : function() { - delete $scope.policy.config; - }, - - onInitCreate : function(newPolicy) { - newPolicy.scannerPeriod = 1; - newPolicy.scannerPeriodUnit = 'Hours'; - }, - - onCreate : function() { - delete $scope.policy.config; - } - }, realm, client, $scope); -}); - module.controller('ResourceServerPolicyResourceDetailCtrl', function($scope, $route, $location, realm, client, PolicyController, ResourceServerPermission, ResourceServerResource, policyViewState) { PolicyController.onInit({ getPolicyType : function() { diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/authz/policy/provider/resource-server-policy-drools-detail.html b/themes/src/main/resources/theme/base/admin/resources/partials/authz/policy/provider/resource-server-policy-drools-detail.html deleted file mode 100644 index 583548f78bc..00000000000 --- a/themes/src/main/resources/theme/base/admin/resources/partials/authz/policy/provider/resource-server-policy-drools-detail.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - {{:: 'clients' | translate}} - {{client.clientId}} - {{:: 'authz-authorization' | translate}} - {{:: 'authz-policies' | translate}} - {{policyState.state.policy.name}} - {{:: policyState.state.previousPage.name | translate}} - {{:: 'authz-add-drools-policy' | translate}} - Rules - {{originalPolicy.name}} - - - {{:: 'authz-add-drools-policy' | translate}} - {{originalPolicy.name|capitalize}} - - - - - {{:: 'name' | translate}} * - - - - {{:: 'authz-policy-name.tooltip' | translate}} - - - {{:: 'description' | translate}} - - - - {{:: 'authz-policy-description.tooltip' | translate}} - - - {{:: 'authz-policy-drools-maven-artifact' | translate}} * - {{:: 'authz-policy-drools-maven-artifact-resolve' | translate}} - - - - {{:: 'authz-policy-drools-maven-artifact.tooltip' | translate}} - - - - - - - - - - - - - - - {{:: 'authz-policy-drools-module' | translate}} * - - - - - - - {{:: 'authz-policy-drools-module.tooltip' | translate}} - - - {{:: 'authz-policy-drools-session' | translate}} * - - - - - - - {{:: 'authz-policy-drools-session.tooltip' | translate}} - - - {{:: 'authz-policy-drools-update-period' | translate}} - - - - {{:: 'seconds' | translate}} - {{:: 'minutes' | translate}} - {{:: 'hours' | translate}} - {{:: 'days' | translate}} - - - {{:: 'authz-policy-drools-update-period.tooltip' | translate}} - - - {{:: 'authz-policy-logic' | translate}} - - - - {{:: 'authz-policy-logic-positive' | translate}} - {{:: 'authz-policy-logic-negative' | translate}} - - - - {{:: 'authz-policy-logic.tooltip' | translate}} - - - - - - - {{:: 'save' | translate}} - {{:: 'cancel' | translate}} - - - - - - \ No newline at end of file