diff --git a/README.md b/README.md
index b453f73..5c73e9d 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,14 @@
# A modern Keycloak login theme
-keycloak-modern-login is a Keycloak login theme that's build using Vue.js 3 and Typescript. It is easily extensible and bypasses the complexity of FreeMarker templates.
+keycloak-modern-login is a Keycloak login theme that's build using Tailwind CSS, Vue.js 3 and Typescript. It is easily extensible and bypasses the complexity of FreeMarker templates.
Screenshots

-
+
+
## State of this project
diff --git a/src/types/context.ts b/src/types/context.ts
index f33a8a3..1a7c3a8 100644
--- a/src/types/context.ts
+++ b/src/types/context.ts
@@ -325,6 +325,16 @@ export declare namespace KcContextBase {
attributesByName: Record;
};
};
+
+ export type SAMLPostForm = Common & {
+ pageId: "saml-post-form.ftl"
+ samlPost: {
+ url: string;
+ SAMLRequest?: string;
+ SAMLResponse?: string;
+ relayState?: string;
+ }
+ };
}
export type Attribute = {
diff --git a/src/types/samlPostData.ts b/src/types/samlPostData.ts
new file mode 100644
index 0000000..6bc70c3
--- /dev/null
+++ b/src/types/samlPostData.ts
@@ -0,0 +1,5 @@
+export type SAMLPostData = {
+ SAMLRequest?: string,
+ SAMLResponse?: string,
+ relayState?: string,
+}
\ No newline at end of file
diff --git a/src/views/saml-post-form/index.ftl b/src/views/saml-post-form/index.ftl
new file mode 100644
index 0000000..21397e4
--- /dev/null
+++ b/src/views/saml-post-form/index.ftl
@@ -0,0 +1,6 @@
+<#import "baselayout.ftl" as layout>
+<@layout.baseLayout pageId="saml-post-form.ftl" ; section>
+ <#if section = "scripts">
+
+ #if>
+@layout.baseLayout>
diff --git a/src/views/saml-post-form/index.ts b/src/views/saml-post-form/index.ts
new file mode 100644
index 0000000..9344ee4
--- /dev/null
+++ b/src/views/saml-post-form/index.ts
@@ -0,0 +1,7 @@
+import { createApp } from "vue";
+import index from "./index.vue";
+
+if ((window as any).kcContext) {
+ const app = createApp(index);
+ app.mount("#app");
+}
diff --git a/src/views/saml-post-form/index.vue b/src/views/saml-post-form/index.vue
new file mode 100644
index 0000000..e5ea71e
--- /dev/null
+++ b/src/views/saml-post-form/index.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+ Redirecting...
+
+
+
+
diff --git a/src/views/webauthn-authenticate/index.vue b/src/views/webauthn-authenticate/index.vue
index e433d12..ed6a2e8 100644
--- a/src/views/webauthn-authenticate/index.vue
+++ b/src/views/webauthn-authenticate/index.vue
@@ -86,7 +86,7 @@ import type { KcContextBase } from "~/types/context";
import { base64url } from "rfc4648";
export default defineComponent({
- name: "Login",
+ name: "WebAuthnAuthenticate",
components: {
Layout,
ErrorBox,
diff --git a/webpack.config.js b/webpack.config.js
index 5807125..ba34e35 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -5,7 +5,7 @@ const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const THEME_NAME = "modern-login";
-const customPages = ["login", "webauthn-authenticate"];
+const customPages = ["login", "webauthn-authenticate", "saml-post-form"];
module.exports = function (env, argv) {
const isDevelopment = argv.mode !== "production";