diff --git a/.gitignore b/.gitignore
index 683f09c..d0c5e78 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,5 @@ pom.xml.versionsBackup
# VS Code
.factorypath
.vscode
+
+**/.idea/**
\ No newline at end of file
diff --git a/README.md b/README.md
index b435012..3e07e29 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# keycloak-group-password-policy
-This keycloak extension (currenty developed and tested against version 6.0.1) aims to
+This keycloak extension (currenty developed and tested against versions 6, 8-15, 18) aims to
create the possibility to assign additional password rules to user groups, extending the
rules attached to the realm, _not_ replacing them.
@@ -8,7 +8,8 @@ It is available as a new type of password policy on the realm's password policy
## Installation
The extension can be installed just like any keycloak extension. Either copy it to the
-`keycloak/standalone/deployments` folder, or load it via the jboss command line tool.
+`keycloak/standalone/deployments` folder for JBoss deployments or in `keycloak/deployments`
+for quarkus distributions, or load it via the jboss command line tool.
## Usage
There are multiple steps you will want to take to use this plugin. First, you need to determine
@@ -44,7 +45,7 @@ For example:
[`length(8) and digits(2) and lowerCase(2) and upperCase(2) and specialChars(2) and notUsername()`](https://github.com/keycloak/keycloak/blob/6.0.1/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/policy/PasswordPolicyTest.java#L243)
-The [policies provided with KeyCloak](https://www.keycloak.org/docs/6.0/server_admin/#password-policy-types) are:
+The [policies provided with KeyCloak](https://www.keycloak.org/docs/latest/server_admin/#authentication-operations) are:
| Identifier | Parameter description | Tested |
| ------------- |:------------------------------------ | ------ |
diff --git a/pom.xml b/pom.xml
index a46bf3b..9716918 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,6 @@
1.8${java.version}${java.version}
-
${keycloak.majorVersion}.0.01.0
@@ -57,12 +56,12 @@
org.apache.maven.pluginsmaven-jar-plugin
- 3.1.1
+ 3.4.2org.codehaus.mojobuild-helper-maven-plugin
- 3.2.0
+ 3.6.0
@@ -71,15 +70,23 @@
org.apache.maven.pluginsmaven-jar-plugin
-
- keycloak-v${keycloak.majorVersion}
-
-
-
- org.keycloak.keycloak-services
-
-
-
+
+
+ >keycloak-v${keycloak.majorVersion}
+
+ jar
+
+
+ keycloak-v${keycloak.majorVersion}
+
+
+
+ org.keycloak.keycloak-services
+
+
+
+
+
@@ -114,9 +121,6 @@
keycloak-v7
-
- true
- 7
@@ -390,5 +394,44 @@
+
+ keycloak-v18
+
+ true
+
+
+ 18
+ 1.8
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-source-keycloak-v18
+ add-source
+
+
+ ${basedir}/src/keycloak-v6-common/java
+ ${basedir}/src/keycloak-v8-common/java
+ ${basedir}/src/keycloak-v9-common/java
+ ${basedir}/src/keycloak-v10-common/java
+ ${basedir}/src/keycloak-v11-common/java
+ ${basedir}/src/keycloak-v12-common/java
+ ${basedir}/src/keycloak-v13-common/java
+ ${basedir}/src/keycloak-v14-common/java
+ ${basedir}/src/keycloak-v15-common/java
+ ${basedir}/src/keycloak-v18-common/java
+ ${basedir}/src/keycloak-v18/java
+
+
+
+
+
+
+
+
diff --git a/src/keycloak-v12-common/java/com/github/jpicht/keycloak/policy/FakeRealmV12.java b/src/keycloak-v12-common/java/com/github/jpicht/keycloak/policy/FakeRealmV12.java
index d3960e2..8ee480a 100644
--- a/src/keycloak-v12-common/java/com/github/jpicht/keycloak/policy/FakeRealmV12.java
+++ b/src/keycloak-v12-common/java/com/github/jpicht/keycloak/policy/FakeRealmV12.java
@@ -154,7 +154,7 @@ public abstract class FakeRealmV12 extends FakeRealmV11 {
throw new UnsupportedOperationException("Not supported yet.");
}
- @Override
+
public void patchRealmLocalizationTexts(String locale, Map localizationTexts) {
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/src/keycloak-v15-common/java/com/github/jpicht/keycloak/policy/FakeRealmV15.java b/src/keycloak-v15-common/java/com/github/jpicht/keycloak/policy/FakeRealmV15.java
index 9197a5a..006e16d 100644
--- a/src/keycloak-v15-common/java/com/github/jpicht/keycloak/policy/FakeRealmV15.java
+++ b/src/keycloak-v15-common/java/com/github/jpicht/keycloak/policy/FakeRealmV15.java
@@ -18,7 +18,7 @@ package com.github.jpicht.keycloak.policy;
import org.keycloak.models.ParConfig;
-public class FakeRealmV15 extends FakeRealmV14 {
+public abstract class FakeRealmV15 extends FakeRealmV14 {
@Override
public ParConfig getParPolicy() {
diff --git a/src/keycloak-v18-common/java/com/github/jpicht/keycloak/policy/FakeRealmV18.java b/src/keycloak-v18-common/java/com/github/jpicht/keycloak/policy/FakeRealmV18.java
new file mode 100644
index 0000000..7731454
--- /dev/null
+++ b/src/keycloak-v18-common/java/com/github/jpicht/keycloak/policy/FakeRealmV18.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2021 Brian Long (brian@inteligr8.com)
+ *
+ * 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 com.github.jpicht.keycloak.policy;
+
+import org.keycloak.models.ParConfig;
+
+import java.util.Map;
+
+public class FakeRealmV18 extends FakeRealmV15 {
+
+
+ @Override
+ public void createOrUpdateRealmLocalizationTexts(String locale, Map localizationTexts) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+}
diff --git a/src/keycloak-v18/java/com/github/jpicht/keycloak/policy/FakeRealm.java b/src/keycloak-v18/java/com/github/jpicht/keycloak/policy/FakeRealm.java
new file mode 100644
index 0000000..1a39ad7
--- /dev/null
+++ b/src/keycloak-v18/java/com/github/jpicht/keycloak/policy/FakeRealm.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2019 Julian Picht
+ * Copyright 2021 Brian Long (brian@inteligr8.com)
+ *
+ * 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 com.github.jpicht.keycloak.policy;
+
+import org.keycloak.models.PasswordPolicy;
+
+public class FakeRealm extends FakeRealmV18 {
+
+ private PasswordPolicy passwordPolicy;
+
+ @Override
+ public PasswordPolicy getPasswordPolicy() {
+ return passwordPolicy;
+ }
+
+ @Override
+ public void setPasswordPolicy(PasswordPolicy policy) {
+ passwordPolicy = policy;
+ }
+
+}