Class ASelectAuthorizationFilter
- java.lang.Object
-
- nl.b3p.commons.security.aselect.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
-
-
Field Summary
-
Fields inherited from interface nl.b3p.commons.security.aselect.ASelectConstants
ASELECT_AGENT_AUTHSESSION_EXPIRED, ASELECT_AGENT_TICKET_EXPIRED, ASELECT_AGENT_TICKET_INVALID, ASELECT_AGENT_TICKET_UNKNOWN, ASELECT_OK
-
-
Constructor Summary
Constructors Constructor Description ASelectAuthorizationFilter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
destroy()
void
doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain)
Deze methode zorgt ervoor dat alleen chain.doFilter() wordt aangeroepen indien de client is geautoriseerd.static void
forceLogin(javax.servlet.http.HttpSession session)
void
init(javax.servlet.FilterConfig filterConfig)
Deze functie initialiseert het filter en controleert de init parameters.
-
-
-
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 interfacejavax.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 interfacejavax.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 interfacejavax.servlet.Filter
-
forceLogin
public static void forceLogin(javax.servlet.http.HttpSession session)
-
-