Dette dokument beskriver installationen af NSP Access Handler 2. Vær opmærksom på at NSP Access Handler erstatter de tidligere Security Handler og HTTP Handler (også kaldet Log Handler), disse skal derfor fjernes fra Wildfly ifm installationen af NSP Access Handler. Vær ligeledes opmærksom på at tidligere versioner af Access Handler ikke kan køre sammen med version 2 og fremad.

NSP Access Handler

NSP Acces Handler er en Wildfly Servlet Extension der intercepter alle requests og foretager et antal opgaver på request og response content.

Access Log

Der produceres en access log i JSON format som indeholder informationer fra sikkerhedsheaderen mv.

Audit Log

Der produceres en audit log hvis den kaldende komponent anvender NSP Audit API.

Certificate Revocation Check

Der foretages et CRL tjek af certifikatet i sikkerhedsheaderen. Tjekket er afhængig af at databasen fra CRA er tilgængelig på det valgte miljø. Det anbefales at køre CRA på andet miljø og fordele data via replikering i MySQL.

Leverancen

Leverancen indeholder følgende filer:

FilIndhold
module.xmlWildfly modul definition
accesshandler.jarNSP Access Handler Java Archive
handler.propertiesOpsætning af buffer størrelse
accesslog.propertiesOpsætning af Access Log
audit.propertiesOpsætning af Audit Log
cra.propertiesOpsætning af CRA forbindelse
httpheaders.configKonfiguration af hvilke HTTP Headers der kommer i Access Log
elementtexts.configKonfiguration af hvilke XML tekst elementer der kommer i Access Log
attributevalues.configKonfiguration af hvilke SAML attributter der kommer i Access Log
handler.skipListe af URL patterns som skal skippes af handleren
crl.skipListe af URL patterns som skal skippes af CRL tjekket

I Driftvejledningen er disse filer yderligere beskrevet.

Wildfly Moduler

Følgende 4 Wildfly moduler skal opsættes.

Access Handler

Opret modulet /pack/wildfly8/modules/system/layers/base/dk/sds/nsp/accesshandler/main/ og placer filerne module.xml, accesshandler.jar og alle konfigurationsfilerne (*.properties, *.config, *.skip) fra leverancen deri.

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="dk.sds.nsp.accesshandler">
    <resources>
        <resource-root path="accesshandler.jar" />
        <resource-root path="." />
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="dk.sds.nsp.audit"/>
        <module name="org.bouncycastle" />
        <module name="javax.servlet.api" />
        <module name="javax.xml.stream.api" />
        <module name="org.apache.commons.pool" />
        <module name="io.undertow.core" services="import" />
        <module name="org.apache.james.mime4j" slot="0.7.2" />
        <module name="io.undertow.servlet" services="import" />
        <module name="org.glassfish.javax.json" slot="1.0.4"/>
    </dependencies>
</module>

Den ovenstående module.xml er ligeledes indeholdt i leverancen.

Audit API

Opret modulet /pack/wildfly8/modules/system/layers/base/dk/sds/nsp/audit/main/ og udfyld module.xml med følgende indhold:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="dk.sds.nsp.audit">
    <resources>
        <resource-root path="nsp-audit-api.jar" />
    </resources>
</module>

Hent NSP Audit API fra Nexus, omdøb filen til nsp-audit-api.jar og placer den i modulet.

https://nexus.nspop.dk/nexus/content/groups/public/dk/sds/nsp/audit/audit-api/1.0.1/audit-api-1.0.1.jar

JSON

Opret modulet /pack/wildfly8/modules/system/layers/base/org/glassfish/javax/json/1.0.4/ og udfyld module.xml med følgende indhold:

<module xmlns="urn:jboss:module:1.3" name="org.glassfish.javax.json" slot="1.0.4">

    <properties>
        <property name="jboss.api" value="private"/>
    </properties>

    <dependencies>
    </dependencies>
    <resources>
        <resource-root path="javax.json-1.0.4.jar"/>
    </resources>
</module>

Hent Glassfish JSON fra Nexus og placer filen i modulet.

https://nexus.nspop.dk/nexus/content/groups/public/org/glassfish/javax.json/1.0.4/javax.json-1.0.4.jar

Mime4J

Opret modulet /pack/wildfly8/modules/system/layers/base/org/apache/james/mime4j/0.7.2/ og udfyld module.xml med følgende indhold:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.apache.james.mime4j" slot="0.7.2">
    <resources>
        <resource-root path="apache-mime4j-core-0.7.2.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="org.apache.commons.logging"/>
    </dependencies>
</module>

Hent Apache James Mime4J fra Nexus og placer filen i modulet.

https://nexus.nspop.dk/nexus/content/groups/public/org/apache/james/apache-mime4j-core/0.7.2/apache-mime4j-core-0.7.2.jar

Wildfly opsætning

NSP Access Handler skal aktiveres i filen /pack/wildfly8/standalone/configuration/standalone.xml, ligeledes skal log konfigurationen sættes op deri.

Aktivering

Følgende xml sniplet skal indsættes:

<global-modules>
    <module name="dk.sds.nsp.accesshandler" slot="main" services="true" meta-inf="true"/>
</global-modules>

under noden:

Logning

Der opsættes tre nye logfiler og tilsvarende kategorier ifm. NSP Access Handler

<size-rotating-file-handler name="ACCESSHANDLER_APP" autoflush="true">
    <file relative-to="jboss.server.log.dir" path="accesshandler.log"/>
    <append value="true"/>
    <rotate-size value="1m"/> 
    <max-backup-index value="50"/>
    <formatter>
        <named-formatter name="PATTERN"/>
    </formatter>
</size-rotating-file-handler>
<size-rotating-file-handler name="ACCESSLOG" autoflush="true">
    <file relative-to="jboss.server.log.dir" path="access.log"/>
    <append value="true"/>
    <rotate-size value="1m"/> 
    <max-backup-index value="50"/>
    <formatter>
        <pattern-formatter pattern="%s"/>
    </formatter>
</size-rotating-file-handler>
<size-rotating-file-handler name="AUDITLOG" autoflush="true">
    <file relative-to="jboss.server.log.dir" path="audit.log"/>
    <append value="true"/>
    <rotate-size value="1m"/> 
    <max-backup-index value="50"/>
    <formatter>
        <pattern-formatter pattern="%s"/>
    </formatter>
</size-rotating-file-handler>
<logger category="dk.sds.nsp.accesshandler" use-parent-handlers="false">
    <level name="DEBUG" />
    <handlers>
        <handler name="ACCESSHANDLER_APP"/>
    </handlers>
</logger>
<logger category="dk.sds.nsp.access.log" use-parent-handlers="false">
    <level name="DEBUG" />
    <handlers>
        <handler name="ACCESSLOG"/>
    </handlers>
</logger>
<logger category="dk.sds.nsp.audit.log" use-parent-handlers="false">
    <level name="DEBUG" />
    <handlers>
        <handler name="AUDITLOG"/>
    </handlers>
</logger>