sso-client.jar
The sso-client.jar contains all the code that deals with logging in, logging out and retrieving the logged in users information. This is all done with multiple redirects and a lot of encryption, but this is all abstracted away by the SSOClientFilter, ShireServlet and LogoutServlet.
When configured in a web.xml like this:
<context-param> <param-name>ssoclient.config</param-name> <param-value>/sso-config.xml</param-value> </context-param> <filter> <filter-name>SSOClientFilter</filter-name> <filter-class>uk.ac.warwick.sso.client.SSOClientFilter</filter-class> </filter> <filter-mapping> <filter-name>SSOClientFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>uk.ac.warwick.sso.client.SSOConfigLoader</listener-class> </listener> <servlet> <servlet-name>ShireServlet</servlet-name> <display-name>Shire</display-name> <servlet-class>uk.ac.warwick.sso.client.ShireServlet</servlet-class> </servlet> <servlet> <servlet-name>LogoutServlet</servlet-name> <display-name>Logout</display-name> <servlet-class>uk.ac.warwick.sso.client.LogoutServlet</servlet-class> </servlet>
SSOClientFilter, once it has done all of its work just puts a User object in the request scope under a certain key (usually SSO_USER, but configurable in the sso-config.xml). If the user is logged i it will be a logged in user, if not, it will be anonymous. Simple as that.