<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<xsd:schema xmlns="http://camel.apache.org/schema/spring-security"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:beans="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:camel-spring="http://camel.apache.org/schema/spring"
  targetNamespace="http://camel.apache.org/schema/spring-security"
  elementFormDefault="qualified"
  attributeFormDefault="unqualified">

  <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
  <xsd:import namespace="http://camel.apache.org/schema/spring" schemaLocation="http://camel.apache.org/schema/spring/camel-spring.xsd"/>

  <xsd:element name="authorizationPolicy">
	  <xsd:complexType>
	  	<xsd:attribute name="id" type="xsd:ID" use="required" />
	  	<xsd:attribute name="access" type="xsd:string" />	  	
	  	<xsd:attribute name="accessDecisionManager" type="xsd:string" />
	  	<xsd:attribute name="authenticationAdapter" type="xsd:string" />
	  	<xsd:attribute name="authenticationManager" type="xsd:string" />
	  	<xsd:attribute name="useThreadSecurityContext" type="xsd:boolean" default="true"/>
	  	<xsd:attribute name="alwaysReauthenticate" type="xsd:boolean" default="false"/>
	  </xsd:complexType>
  </xsd:element>
  
</xsd:schema>
