build-truststore.xml

52 lines | 2.108 kB Blame History Raw Download
<!--
  ~ 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.
  -->

<project name="inject-truststore" basedir="." default="inject-truststore">

    <scriptdef name="inject-truststore" language="javascript"  manager="bsf">
        <attribute name="path"/>
        <![CDATA[
            importClass(Packages.java.io.File);
            importClass(Packages.org.keycloak.util.JsonSerialization);

            path = attributes.get("path");
            file = new File(path + "/standalone/configuration/keycloak-server.json");
            root = JsonSerialization.mapper.readTree(file);

            jNode = JsonSerialization.mapper.createObjectNode();
            //jNode.put("file","${auth.server.home:" + path + "}/standalone/configuration/keycloak.truststore");
            jNode.put("file","${jboss.home.dir}/standalone/configuration/keycloak.truststore");
            jNode.put("password","secret");
            jNode.put("hostname-verification-policy","WILDCARD");
            jNode.put("disabled","false");

            fileNode = JsonSerialization.mapper.createObjectNode();
            fileNode.set("file", jNode);
            truststoreNode = JsonSerialization.mapper.createObjectNode();
            truststoreNode.set("truststore", fileNode);

            root.putAll(truststoreNode);

            // save file
            JsonSerialization.prettyMapper.writeValue(file, root);
        ]]>
    </scriptdef>

    <target name="inject-truststore">
        <inject-truststore path="${auth.server.home}"/>
    </target>
</project>