<commit_before>% CAS Protocol 3.0 specification

\newpage
<a name="headTop"/>

*CAS Protocol 3.0 Specification*
================================

**Authors, Version**
====================

Author: <NAME>

Contributors:

-   <NAME>

-   <NAME>

-   <NAME>

-   <NAME>

-   <NAME> [CAS 3.0]

Version: 3.0 RC2

Release Date: T.B.D.

Copyright &copy; 2005, Yale University

Copyright &copy; 2014, JA-SIG, Inc.

<a name="head1"/>

**1. Introduction**
===================

This is the official specification of the CAS 1.0, 2.0 and 3.0 protocols.

The Central Authentication Service (CAS) is a single-sign-on / single-sign-off protocol
for the web.
It permits a user to access multiple applications while providing their
credentials (such as userid and password) only once to a central CAS Server
application.


<a name="head1.1"/>

**1.1. Conventions & Definitions**
----------------------------------

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in RFC 2119[1](<#1>).

-   "Client" refers to the end user and/or the web browser.

-   "CAS Client" refers to the software component that is integrated with a web
    application and interacts with the CAS server via CAS protocol.

-   "Server" refers to the Central Authentication Service server.

-   "Service" refers to the application the client is trying to access.

-   "Back-end service" refers to the application a service is trying to access
    on behalf of a client. This can also be referred to as the "target service."

-   "SSO" refers to Single Sign on.

-   "SLO" refers to Single Logout.

-   "\<LF\>" is a bare line feed (ASCII value 0x0a).

<a name="1.2"/>

**1.2 Reference Implementation**
--------------------------------
The JASIG CAS-Server [8](<#8>) is the official reference implementation of the
CAS protocol specification.


**2. CAS URIs**
===============

CAS is an HTTP[2](<#2>),[3](<#3>)-based protocol that requires each of its
components to be accessible through specific URIs. This section will discuss
each of the URIs:

URI              Description
------           ------
/login           credential requestor / acceptor
/logout          destroy CAS session (logout)
/validate        service ticket validation
/serviceValidate service ticket validation [CAS 2.0]
/proxyValidate   service- / proxy ticket validation [CAS 2.0]
/proxy           proxy ticket service [CAS 2.0]

<a name="head2.1"/>

**2.1. /login as credential requestor**
---------------------------------------

The /login URI operates with two behaviors: as a credential requestor, and as
a credential acceptor. It responds to credentials by acting as a credential
acceptor and otherwise acts as a credential requestor.

If the client has already established a single sign-on session with CAS, the<commit_msg> - minor fixes, state CAS 4.0 as protocol 3.0 compliant.<commit_after>% CAS Protocol 3.0 specification

\newpage
<a name="headTop"/>

*CAS Protocol 3.0 Specification*
================================

**Authors, Version**
====================

Author: <NAME>

Contributors:

-   <NAME>

-   <NAME>

-   <NAME>

-   <NAME>

-   <NAME> [CAS 3.0]

Version: 3.0 RC2

Release Date: T.B.D.

Copyright &copy; 2005, Yale University

Copyright &copy; 2014, JA-SIG, Inc.

<a name="head1"/>

**1. Introduction**
===================

This is the official specification of the CAS 1.0, 2.0 and 3.0 protocols.

The Central Authentication Service (CAS) is a single-sign-on / single-sign-off protocol
for the web.
It permits a user to access multiple applications while providing their
credentials (such as userid and password) only once to a central CAS Server
application.


<a name="head1.1"/>

**1.1. Conventions & Definitions**
----------------------------------

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in RFC 2119[1](<#1>).

-   "Client" refers to the end user and/or the web browser.

-   "CAS Client" refers to the software component that is integrated with a web
    application and interacts with the CAS server via CAS protocol.

-   "Server" refers to the Central Authentication Service server.

-   "Service" refers to the application the client is trying to access.

-   "Back-end service" refers to the application a service is trying to access
    on behalf of a client. This can also be referred to as the "target service."

-   "SSO" refers to Single Sign on.

-   "SLO" refers to Single Logout.

-   "\<LF\>" is a bare line feed (ASCII value 0x0a).

<a name="head1.2"/>

**1.2 Reference Implementation**
--------------------------------
The JASIG CAS-Server [8](<#8>) is the official reference implementation of the
CAS Protocol Specification.

JASIG CAS Server 4.x supports the CAS Protocol 3.0 Specification.


<a name="head2"/>

**2. CAS URIs**
===============

CAS is an HTTP[2](<#2>),[3](<#3>)-based protocol that requires each of its
components to be accessible through specific URIs. This section will discuss
each of the URIs:

URI              Description
------           ------
/login           credential requestor / acceptor
/logout          destroy CAS session (logout)
/validate        service ticket validation
/serviceValidate service ticket validation [CAS 2.0]
/proxyValidate   service- / proxy ticket validation [CAS 2.0]
/proxy           proxy ticket service [CAS 2.0]

<a name="head2.1"/>

**2.1. /login as credential requestor**
---------------------------------------

The /login URI operates with two behaviors: as a credential requestor, and as
a credential acceptor. It responds to credentials by acting as a credential
acceptor and otherwise acts as a credential requestor.

If the client has already established a single sign-on session with CAS, the
{'fraction_non_alphanumeric': 0.1599323753169907, 'fraction_numerical': 0.0209636517328825, 'mean_word_length': 3.0, 'pattern_counts': {'":': 0, '<': 36, '<?xml version=': 0, '>': 36, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2224090', 'n_tokens_mistral': 1812, 'n_tokens_neox': 1675, 'n_words': 744}