<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi,<br>
    <br>
    I'm working at RENATER (French NREN) at developing a new login
    handler for the IdP and I would like to have some clues or feedbacks
    on what I've already done.<br>
    <br>
    Many French universities and higher education institutions all over
    the world use SSO-CAS as authentication system. Thus, as you may
    know, many of them who joined an academic federation run the
    Shibboleth IdP in conjunction with SSO-CAS (via the RemoteUser login
    handler). The handler I'm developing will allow them to be
    compatible with one of the most common features of SAML2 originally
    provided by Shibboleth IdP : forced authentication. This feature is
    quite often asked for by administrators.<b><br>
      <br>
    </b>This handler is inspired from both the RemoteUser login landler
    and the ExternalAuthnSystem login handler. It acts as an
    intermediate between the Authentication Engine and the filters
    provided by the SSO-CAS Client. It extends AbstractLoginHandler and
    provides a few methods allowing the enforcement of forced
    authentication through CAS. <br>
    <br>
    When this handler's login() is called by the Authentication Engine,
    these methods examine if forced authentication is required. Then
    they act accordingly on CAS-related attributes of the request, and
    build the URL of the filter to which the request is to be forwarded.
    The RemoteUserAuthServlet is called after the SSO-CAS Client's
    filters to get the result of the authentication and return control
    to the Authentication Engine - just as it is done with the
    RemoteUser login handler.<br>
    <br>
    Using this handler does not imply any modification on the SSO-CAS
    Client or server. <br>
    <br>
    Since this handler represents only a few lines of code and does not
    affect any other functionality of the IdP, we think that it would be
    valuable to implement it directly in a more generic handler. I have
    seen that you plan to merge the RemoteUser and the
    ExternalAuthnSystem login handlers, and our code would fit well and
    easily in the result of the merging.<br>
    <br>
    Thank you for any reaction,<br>
    <br>
    Yanis Aumont.<br>
    <br>
  </body>
</html>