Class ASelectAuthorizationFilter

  • All Implemented Interfaces:
    javax.servlet.Filter, ASelectConstants

    public class ASelectAuthorizationFilter
    extends Object
    implements javax.servlet.Filter, ASelectConstants
    Dit is een authorisatie-filter die gebruik maakt van A-Select. Het zorgt ervoor dat alle requests die geforward worden in de filter-chain zijn gedaan door een gebruiker die is geautoriseerd via A-Select.

    Verschillende API's: webserver-filter is speciaal omdat die alleen via het wel of niet aanwezig zijn van cookies gezet door de filter communiceert en de applicatie dus niet zelf requests initieert.

    Deze filter reserveert het gebruik van de URL parameters rid en aselect_credentials.

    Filter init-params:

    • api: agent, (webserver-filter, server)
      Welke API moet worden gebruikt voor communicatie met de A-Select server (voorlopig is alleen agent geimplementeerd welke gebruikt wordt in piblweb).
    • app_id
      A-Select application ID. Alleen van toepassing bij agent of server API.
    • agent_host (optioneel)
    • agent_port (optioneel, default 1495)
    • server_url (verplicht bij server api)
    • server_id (verplicht bij server api)
    • error_page
      Moet nog aan gewerkt worden.
    • Dit filter plaatst de volgende keys in de log4j Mapped Diagnostic Context (MDC): ASelectUid ASelectTicket

      TODO impl api webserver-filter, server
      TODO impl error_page
      TODO error messages uit resource files

    Author:
    matthijsln
    • Constructor Detail

      • ASelectAuthorizationFilter

        public ASelectAuthorizationFilter()
    • Method Detail

      • init

        public void init​(javax.servlet.FilterConfig filterConfig)
        Deze functie initialiseert het filter en controleert de init parameters. Indien deze parameters ongeldig zijn wordt dit gelogd en wordt in de doFilter() methode een exception gethrowd en niet de filter chain voortgezet.
        Specified by:
        init in interface javax.servlet.Filter
      • doFilter

        public void doFilter​(javax.servlet.ServletRequest request,
                             javax.servlet.ServletResponse response,
                             javax.servlet.FilterChain chain)
                      throws IOException,
                             javax.servlet.ServletException
        Deze methode zorgt ervoor dat alleen chain.doFilter() wordt aangeroepen indien de client is geautoriseerd.

        Indien de client niet geautoriseerd is wordt deze geredirect naar de A-Select server.

        Indien de client zich wel geautoriseerd heeft maar de credentials of het ticket is ongeldig wordt een exception gethrowd (TODO naar error page)

        Specified by:
        doFilter in interface javax.servlet.Filter
        Throws:
        javax.servlet.ServletException - Bij ongeldige configuratie; foute credentials/fout ticket; indien I/O fout optreedt bij communicatie met de A-Select.
        IOException
      • destroy

        public void destroy()
        Specified by:
        destroy in interface javax.servlet.Filter
      • forceLogin

        public static void forceLogin​(javax.servlet.http.HttpSession session)