<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="http://www.mulesource.org/schema/mule/jaas/2.0"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:mule="http://www.mulesource.org/schema/mule/core/2.0"
            targetNamespace="http://www.mulesource.org/schema/mule/jaas/2.0"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">

    <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
    <xsd:import namespace="http://www.mulesource.org/schema/mule/core/2.0" 
                schemaLocation="http://www.mulesource.org/schema/mule/core/2.0/mule.xsd" />
    
    <xsd:element name="security-manager" type="securityManagerType" substitutionGroup="mule:abstract-security-manager"/>

    <xsd:complexType name="securityManagerType">
        <xsd:complexContent>
            <xsd:extension base="mule:abstractSecurityManagerType">
                <xsd:sequence>
                    <xsd:element ref="security-provider"/>
                    <xsd:element name="password-encryption-strategy" type="mule:passwordEncryptionStrategyType" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <!-- jaas provider -->
    <xsd:element name="security-provider" type="jaasSecurityProviderType">
        <xsd:annotation>
            <xsd:documentation>
                This is the security provider type that is used to configure JAAS related functionality.
            </xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="jaasSecurityProviderType">
        <xsd:complexContent>
            <xsd:extension base="mule:securityProviderType">
                <xsd:attribute name="loginContextName" type="xsd:string" use="required"/>
                <xsd:attribute name="credentials" type="xsd:string"/>
                <xsd:attribute name="loginConfig" type="xsd:string"/>
                <xsd:attribute name="loginModule" type="xsd:string"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
	
	<xsd:element name="jaas-security-filter" type="jaasSecurityFilterType" substitutionGroup="mule:abstract-security-filter">
        <xsd:annotation>
            <xsd:documentation>
                This appears to authenticate users via information in standard HTTP headers.
            </xsd:documentation>
        </xsd:annotation>
    </xsd:element>

    <xsd:complexType name="jaasSecurityFilterType">
        <xsd:complexContent>
            <xsd:extension base="mule:abstractSecurityFilterType">
                
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

</xsd:schema>
