/* eslint-disable */ // @ts-nocheck import { useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { SelectControl, TextControl } from "../../../shared/keycloak-ui-shared"; import { FormAccess } from "../../components/form/FormAccess"; import { convertAttributeNameToForm } from "../../util"; import { FormFields } from "../ClientDetails"; import { Toggle } from "./SamlConfig"; import { SamlEncryption } from "./SamlEncryption"; export const SIGNATURE_ALGORITHMS = [ "RSA_SHA1", "RSA_SHA256", "RSA_SHA256_MGF1", "RSA_SHA512", "RSA_SHA512_MGF1", "DSA_SHA1", ] as const; const KEYNAME_TRANSFORMER = ["NONE", "KEY_ID", "CERT_SUBJECT"] as const; const CANONICALIZATION = [ { name: "EXCLUSIVE", value: "http://www.w3.org/2001/10/xml-exc-c14n#" }, { name: "EXCLUSIVE_WITH_COMMENTS", value: "http://www.w3.org/2001/10/xml-exc-c14n#WithComments", }, { name: "INCLUSIVE", value: "http://www.w3.org/TR/2001/REC-xml-c14n-20010315", }, { name: "INCLUSIVE_WITH_COMMENTS", value: "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments", }, ] as const; export const SamlSignature = () => { const { t } = useTranslation(); const { watch } = useFormContext(); const signDocs = watch( convertAttributeNameToForm("attributes.saml.server.signature"), ); const signAssertion = watch( convertAttributeNameToForm( "attributes.saml.assertion.signature", ), ); const samlEncryption = watch( convertAttributeNameToForm("attributes.saml.encrypt"), "false", ); const useMetadataDescriptorUrl = watch( convertAttributeNameToForm( "attributes.saml.useMetadataDescriptorUrl", ), "false", ); return ( {(signDocs === "true" || signAssertion === "true") && ( <> ( "attributes.saml.signature.algorithm", )} label={t("signatureAlgorithm")} labelIcon={t("signatureAlgorithmHelp")} controller={{ defaultValue: SIGNATURE_ALGORITHMS[0], }} options={[...SIGNATURE_ALGORITHMS]} /> ( "attributes.saml.server.signature.keyinfo.xmlSigKeyInfoKeyNameTransformer", )} label={t("signatureKeyName")} labelIcon={t("signatureKeyNameHelp")} controller={{ defaultValue: KEYNAME_TRANSFORMER[0], }} options={[...KEYNAME_TRANSFORMER]} /> ({ key: value, value: name, }))} /> ( "attributes.saml.metadataDescriptorUrl", )} label={t("samlClientMetadataDescriptorUrl")} labelIcon={t("samlClientMetadataDescriptorUrlHelp")} type="url" rules={{ required: { value: useMetadataDescriptorUrl === "true", message: t("required"), }, }} /> {samlEncryption === "true" && } )} ); };