Filter Chains

/security/filterChains

Adds or Lists the filter chains in the geoserver systems

Method

Action

Status code

Formats

Default Format

GET

List all filter chains in the system

200,403,500

XML, JSON

POST

Create a new filter chain

200,400,403,500

XML, JSON

Formats:

XML

For Get (List - Response)

<filterChains>
    <filterChain>
        <name>web-test-2</name>
        <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8080/geoserver/rest/security/filterChains/web-test-2.xml" type="application/atom+xml"/>
    </filterChain>
    <filterChain>
        <name>web-test-5</name>
        <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8080/geoserver/rest/security/filterChains/web-test-5.xml" type="application/atom+xml"/>
    </filterChain>
</fiterChains>

For Post (Create - Request)

Content-Type: application/xml Authentication: XXXXXX

<filterChain>
    <name>web-test-2</name>
    <className>org.geoserver.security.HtmlLoginFilterChain</className>
    <patterns>
        <string>/web/**</string>
        <string>/gwc/rest/web/**</string>
        <string>/</string>
    </patterns>
    <filters>
        <string>rememberme</string>
        <string>form</string>\
        <string>anonymous</string>
    </filters>
    <disabled>false</disabled>
    <allowSessionCreation>true</allowSessionCreation>
    <requireSSL>false</requireSSL>
    <matchHTTPMethod>false</matchHTTPMethod>
    <position>0</position>
</filterChain>

For Post (Create - Response)

201 Created Content-Type: text/plain Location: “http://localhost:9002/geoserver/rest/security/filterChains/web-test-2

JSON

For Get (list)

{
    "filterChains": {
        "filterChain": [
            {
                "name": "web-test-2",
                "href": "http://localhost:8080/geoserver/rest/security/filterChains/web-test-2.json"
            },
            {
                "name": "web-test-5",
                "href": "http://localhost:8080/geoserver/rest/security/filterChains/web-test-5.json"
            }
        ]
    }
}

For Post (create - request)

{
    "filterChain": {
        "name": "rest",
        "className": "org.geoserver.security.ServiceLoginFilterChain",
        "patterns": {
            "string": [
                "/rest.*",
                "/rest/**"
            ]
        },
        "filters": {
            "string": [
                "basic",
                "anonymous"
            ]
        },
        "disabled": false,
        "allowSessionCreation": false,
        "requireSSL": false,
        "matchHTTPMethod": false,
        "position": 6
    }
}

For Post (create - response)


201 Created Content-Type: text/plain Location: “http://localhost:9002/geoserver/rest/security/filterChains/rest

Exceptions

Exception

Status code

Malformed request

400

No administrative privileges

403

Internal Server Error

500

/security/filterChains/{filterChain}

View, Update or Delete an existing auth filter

Method

Action

Status code

Formats

Default Format

GET

View the details of a filter chain on the geoserver

200,403,404,500

XML, JSON

PUT

Update the details of a filter chain on the geoserver

200,400,403,404,500

XML, JSON

DELETE

Delete a filter chain on the geoserver

200,403,410,500

Formats:

XML

Request GET: http://localhost:9002/geoserver/rest/security/filterChains/web-test-1 Header Accept: application/xml

<filterChain>
    <name>web-test-1</name>
    <className>org.geoserver.security.HtmlLoginFilterChain</className>
    <patterns>
        <string>/web/**</string>
        <string>/gwc/rest/web/**</string>
        <string>/</string>
    </patterns>
    <filters>
        <string>rememberme</string>
        <string>form</string>
        <string>anonymous</string>
    </filters>
    <disabled>false</disabled>
    <allowSessionCreation>true</allowSessionCreation>
    <requireSSL>false</requireSSL>
    <matchHTTPMethod>false</matchHTTPMethod>
    <position>1</position>
</filterChain>

Request PUT: http://localhost:9002/geoserver/rest/security/filterChains/web-test-1 Header Content-Type: application/xml Header Accept: application/xml

<filterChain>
    <name>web-test-1</name>
    <className>org.geoserver.security.HtmlLoginFilterChain</className>
    <patterns>
        <string>/web/**</string>
        <string>/gwc/rest/web/**</string>
        <string>/</string>
    </patterns>
    <filters>
        <string>rememberme</string>
        <string>form</string>
        <string>anonymous</string>
    </filters>
    <disabled>false</disabled>
    <allowSessionCreation>true</allowSessionCreation>
    <requireSSL>false</requireSSL>
    <matchHTTPMethod>false</matchHTTPMethod>
    <position>1</position>
</filterChain>

Response Status: 200

<filterChain>
    <name>web-test-1</name>
    <className>org.geoserver.security.HtmlLoginFilterChain</className>
    <patterns>
        <string>/web/**</string>
        <string>/gwc/rest/web/**</string>
        <string>/</string>
    </patterns>
    <filters>
        <string>rememberme</string>
        <string>form</string>
        <string>anonymous</string>
    </filters>
    <disabled>false</disabled>
    <allowSessionCreation>true</allowSessionCreation>
    <requireSSL>false</requireSSL>
    <matchHTTPMethod>false</matchHTTPMethod>
    <position>1</position>
</filterChain>

Request DELETE: http://localhost:9002/geoserver/rest/security/filterChains/web-test-1

Response: Status: 200

<filterChain>
    <name>web-test-1</name>
    <className>org.geoserver.security.HtmlLoginFilterChain</className>
    <patterns>
        <string>/web/**</string>
        <string>/gwc/rest/web/**</string>
        <string>/</string>
    </patterns>
    <filters>
        <string>rememberme</string>
        <string>form</string>
        <string>anonymous</string>
    </filters>
    <disabled>false</disabled>
    <allowSessionCreation>true</allowSessionCreation>
    <requireSSL>false</requireSSL>
    <matchHTTPMethod>false</matchHTTPMethod>
    <position>1</position>
</filterChain>

JSON

Request GET: http://localhost:9002/geoserver/rest/security/filterChains/web-test-2 Header Accept: application/json

Response Status: 200

{
    "filterChain": {
        "name": "web-test-2",
        "className": "org.geoserver.security.HtmlLoginFilterChain",
        "patterns": {
            "string": [
                "/web/**",
                "/gwc/rest/web/**",
                "/"
            ]
        },
        "filters": {
            "string": [
                "rememberme",
                "form",
                "anonymous"
            ]
        },
        "disabled": false,
        "allowSessionCreation": true,
        "requireSSL": false,
        "matchHTTPMethod": false,
        "position": 0
    }
}

Request PUT: http://localhost:9002/geoserver/rest/security/filterChains/web-test-2 Header Content-Type: application/json Header Accept: application/json

{
    "filterChain": {
        "name": "web-test-2",
        "className": "org.geoserver.security.HtmlLoginFilterChain",
        "patterns": {
            "string": [
                "/web/**",
                "/gwc/rest/web/**",
                "/"
            ]
        },
        "filters": {
            "string": [
                "rememberme",
                "form",
                "anonymous"
            ]
        },
        "disabled": false,
        "allowSessionCreation": true,
        "requireSSL": false,
        "matchHTTPMethod": false,
        "position": 0
    }
}

Response Status: 200

{
    "filterChain": {
        "name": "web-test-2",
        "className": "org.geoserver.security.HtmlLoginFilterChain",
        "patterns": {
            "string": [
                "/web/**",
                "/gwc/rest/web/**",
                "/"
            ]
        },
        "filters": {
            "string": [
                "rememberme",
                "form",
                "anonymous"
            ]
        },
        "disabled": false,
        "allowSessionCreation": true,
        "requireSSL": false,
        "matchHTTPMethod": false,
        "position": 0
    }
}

Request DELETE: http://localhost:9002/geoserver/rest/security/filterChains/web-test-2

Response: Status: 200

{
    "filterChain": {
        "name": "web-test-2",
        "className": "org.geoserver.security.HtmlLoginFilterChain",
        "patterns": {
            "string": [
                "/web/**",
                "/gwc/rest/web/**",
                "/"
            ]
        },
        "filters": {
            "string": [
                "rememberme",
                "form",
                "anonymous"
            ]
        },
        "disabled": false,
        "allowSessionCreation": true,
        "requireSSL": false,
        "matchHTTPMethod": false,
        "position": 0
    }
}

Exceptions

Exception

Status code

Malformed request

400

No administrative privileges

403

Authentication filter not found

404

Gone - On Delete Only

410

Internal Server Error

500

Previous: URL Checks
Next: Security