Using Casdoor as a CAS Server
Using Casdoor as a CAS Server
Casdoor can now be used as a CAS server. It currently supports CAS 3.0.
Overview
The CAS endpoint prefix in Casdoor is <Casdoor endpoint>/cas/<organization name>/<application name>. Here is an example using the endpoint https://door.casdoor.com with an application named cas-java-app under the organization casbin:
/loginendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/login/logoutendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/logout/serviceValidateendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/serviceValidate/proxyValidateendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/proxyValidate/proxyendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/proxy/validateendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/validate/p3/serviceValidateendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/p3/serviceValidate/p3/proxyValidateendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/p3/proxyValidate/samlValidateendpoint:https://door.casdoor.com/cas/casbin/cas-java-app/samlValidate
For more information about CAS, its different versions, and parameters for these endpoints, refer to the CAS Protocol Specification.
An Example
Here is an official example GitHub Repository that contains a web app and utilizes the official CAS Java client GitHub Repository. By going through this example, you can learn how to connect to Casdoor via CAS.
Note: Currently, Casdoor only supports all three versions of CAS: CAS 1.0, 2.0, and 3.0.
The CAS configuration is located in src/main/webapp/WEB-INF/web.yml.
By default, this app uses CAS 3.0, which is specified by the following configurations:
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class>
If you want to protect this web app using CAS 2.0, change the CAS Validation Filter to the following:
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
For CAS 1.0, use the following:
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
For all instances of the casServerUrlPrefix parameter, change them to:
<param-name>casServerUrlPrefix</param-name>
<param-value>http://door.casdoor.com/cas/casbin/cas-java-app</param-value>
For all instances of the casServerLoginUrl parameter, change them to:
<param-name>casServerLoginUrl</param-name>
<param-value>http://door.casdoor.com/cas/casbin/cas-java-app/login</param-value>
If you need to customize more configurations, see the Java CAS client GitHub Repository for detailed information.