mirror of https://github.com/jacekkow/keycloak-protocol-cas

Jacek Kowalski
2023-11-24 e1b962f5e269fd62c49eb6ca3ed887bad9811ead
commit | author | age
bce810 1 <?xml version="1.0" encoding="UTF-8"?>
MP 2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cas="http://www.yale.edu/tp/cas" targetNamespace="http://www.yale.edu/tp/cas" elementFormDefault="qualified" attributeFormDefault="unqualified">
3     <xs:annotation>
4         <xs:documentation>The following is the schema for the Central Authentication Service (CAS) version 3.0 protocol response. This covers the responses for the following servlets: /serviceValidate, /proxyValidate, /p3/serviceValidate, /p3/proxyValidate, /proxy This specification is subject to change.</xs:documentation>
5     </xs:annotation>
6     <xs:element name="serviceResponse" type="cas:ServiceResponseType"></xs:element>
7     <xs:complexType name="ServiceResponseType">
8         <xs:choice>
9             <xs:element name="authenticationSuccess" type="cas:AuthenticationSuccessType"></xs:element>
10             <xs:element name="authenticationFailure" type="cas:AuthenticationFailureType"></xs:element>
11             <xs:element name="proxySuccess" type="cas:ProxySuccessType"></xs:element>
12             <xs:element name="proxyFailure" type="cas:ProxyFailureType"></xs:element>
13         </xs:choice>
14     </xs:complexType>
15     <xs:complexType name="AuthenticationSuccessType">
16         <xs:sequence>
17             <xs:element name="user" type="xs:string"></xs:element>
18             <xs:element name="attributes" type="cas:AttributesType" minOccurs="0"></xs:element>
19             <xs:element name="proxyGrantingTicket" type="xs:string" minOccurs="0"></xs:element>
20             <xs:element name="proxies" type="cas:ProxiesType" minOccurs="0"></xs:element>
21         </xs:sequence>
22     </xs:complexType>
23     <xs:complexType name="ProxiesType">
24         <xs:sequence>
25             <xs:element name="proxy" type="xs:string" maxOccurs="unbounded"></xs:element>
26         </xs:sequence>
27     </xs:complexType>
28     <xs:complexType name="AuthenticationFailureType">
29         <xs:simpleContent>
30             <xs:extension base="xs:string">
31                 <xs:attribute name="code" type="xs:string" use="required"></xs:attribute>
32             </xs:extension>
33         </xs:simpleContent>
34     </xs:complexType>
35     <xs:complexType name="ProxySuccessType">
36         <xs:sequence>
37             <xs:element name="proxyTicket" type="xs:string"></xs:element>
38         </xs:sequence>
39     </xs:complexType>
40     <xs:complexType name="ProxyFailureType">
41         <xs:simpleContent>
42             <xs:extension base="xs:string">
43                 <xs:attribute name="code" type="xs:string" use="required"></xs:attribute>
44             </xs:extension>
45         </xs:simpleContent>
46     </xs:complexType>
47     <xs:complexType name="AttributesType">
48         <xs:sequence>
49             <!-- the protocol documentation is unclear about that part; sometimes the meta-attributes are
50                  required, sometimes not. For now we don't support them. -->
51             <!--<xs:element name="authenticationDate" type="xs:dateTime" minOccurs="1" maxOccurs="1"></xs:element>-->
52             <!--<xs:element name="longTermAuthenticationRequestTokenUsed" type="xs:boolean" minOccurs="1" maxOccurs="1">-->
53                 <!--<xs:annotation>-->
54                     <!--<xs:documentation>true if a long-term (Remember-Me) token was used</xs:documentation>-->
55                 <!--</xs:annotation>-->
56             <!--</xs:element>-->
57             <!--<xs:element name="isFromNewLogin" type="xs:boolean" minOccurs="1" maxOccurs="1">-->
58                 <!--<xs:annotation>-->
59                     <!--<xs:documentation>true if this was from a new, interactive login. If login was from a non-interactive login (e.g. Remember-Me), this value is false or might be omitted.</xs:documentation>-->
60                 <!--</xs:annotation>-->
61             <!--</xs:element>-->
62
63             <!-- this part of the offical schema is, unfortunately, invalid -->
64             <!--<xs:element name="memberOf" type="xs:string" minOccurs="0" maxOccurs="unbounded">-->
65                 <!--<xs:annotation>-->
66                     <!--<xs:documentation>One or many elements describing the units the user is member in. E.g. LDAP format values.</xs:documentation>-->
67                 <!--</xs:annotation>-->
68             <!--</xs:element>-->
69
70             <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax">
71                 <xs:annotation>
72                     <xs:documentation>Any user specific attribute elements.</xs:documentation>
73                 </xs:annotation>
74             </xs:any>
75         </xs:sequence>
76     </xs:complexType>
77 </xs:schema>