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
:
/login
endpoint:https://door.casdoor.com/cas/casbin/cas-java-app/login
/logout
endpoint:https://door.casdoor.com/cas/casbin/cas-java-app/logout
/serviceValidate
endpoint:https://door.casdoor.com/cas/casbin/cas-java-app/serviceValidate
/proxyValidate
endpoint:https://door.casdoor.com/cas/casbin/cas-java-app/proxyValidate
/proxy
endpoint:https://door.casdoor.com/cas/casbin/cas-java-app/proxy
/validate
endpoint:https://door.casdoor.com/cas/casbin/cas-java-app/validate
/p3/serviceValidate
endpoint:https://door.casdoor.com/cas/casbin/cas-java-app/p3/serviceValidate
/p3/proxyValidate
endpoint:https://door.casdoor.com/cas/casbin/cas-java-app/p3/proxyValidate
/samlValidate
endpoint: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.