123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns="http://www.springframework.org/schema/security/oauth2" xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:beans="http://www.springframework.org/schema/beans" targetNamespace="http://www.springframework.org/schema/security/oauth2"
- elementFormDefault="qualified" attributeFormDefault="unqualified">
- <xs:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" />
- <xs:element name="rest-template">
- <xs:annotation>
- <xs:documentation>
- Creates an OAuth2RestTemplate with all the pieces needed to connect to a remote resource from
- a web
- application. Injects request and session-scoped beans into the template, so can only be
- used in the context of a web
- request.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="beans:identifiedType">
- <xs:sequence>
- <xs:element ref="beans:description" minOccurs="0" />
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="beans:property" />
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="resource">
- <xs:annotation>
- <xs:documentation>
- The OAuth2ProtectedResourceDetails governing the configuration of this client. Mandatory.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="access-token-provider" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that manages access token acquisition. Optional (defaults to a chain
- including common grant types from the spec).
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="authorization-server">
- <xs:annotation>
- <xs:documentation>
- Specifies that the oauth 2 authorization and token
- endpoints should be created in the application
- context. These are
- implemented as regular Spring @Controller beans, so as long as the
- default Spring MVC set up in
- present in the application
- the endpoints should work (at /oauth/authorization and /oauth/token by
- default).
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element name="authorization-code" minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation>
- The configuration of the authorization code
- mechanism. This
- mechanism enables a way for clients to
- obtain an
- access token by obtaining an authorization code.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="disabled" type="xs:boolean">
- <xs:annotation>
- <xs:documentation>
- Whether to disable the authorization code
- mechanism.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="authorization-code-services-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the
- authorization code
- services. Default value is an
- instance of
- "org.springframework.security.oauth2.provider.authorization_code.InMemoryAuthorizationCodeServices".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="implicit" minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation>
- The configuration of the client credentials
- grant type.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="disabled" type="xs:boolean">
- <xs:annotation>
- <xs:documentation>
- Whether to disable the implicit grant type
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="refresh-token" minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation>
- The configuration of the refresh token grant
- type.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="disabled" type="xs:boolean">
- <xs:annotation>
- <xs:documentation>
- Whether to disable the refresh token grant
- type
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="client-credentials" minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation>
- The configuration of the client credentials
- grant type.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="disabled" type="xs:boolean">
- <xs:annotation>
- <xs:documentation>
- Whether to disable the refresh token grant
- type
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="password" minOccurs="0" maxOccurs="1">
- <xs:annotation>
- <xs:documentation>
- The configuration of the resource owner password
- grant type.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="disabled" type="xs:boolean">
- <xs:annotation>
- <xs:documentation>
- Whether to disable the refresh token grant
- type
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="authentication-manager-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- A reference to an authentication manager that
- can be used to
- authenticate the resource owner
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="custom-grant" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation>
- The configuration of your custom grant type.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="disabled" type="xs:boolean">
- <xs:annotation>
- <xs:documentation>
- Whether to disable this grant
- type
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="token-granter-ref" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>
- A reference to your token granter
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="client-details-service-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the client
- details service.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="token-endpoint-url" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The URL at which a request for an access token
- will be serviced.
- Default value: "/oauth/token"
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="authorization-endpoint-url" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The URL at which a user is redirected for
- authorization. Default
- value: "/oauth/authorize"
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <!--the following attributes are less used -->
- <xs:attribute name="token-granter-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the
- granter of different oauth
- token types.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="implicit-grant-service-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the
- implicit grant service.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
-
- <xs:attribute name="token-services-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the token
- services. Default
- value is an instance of
- "org.springframework.security.oauth2.provider.token.DefaultTokenServices".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="authorization-request-manager-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the manager for
- authorization requests from the input
- parameters (e.g. request parameters).
- Default
- value is an
- instance of
- "org.springframework.security.oauth2.provider.token.DefaultAuthorizationRequestManager".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="user-approval-handler-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- Reference to a bean that handles user approval decisions. Using this strategy servers can
- selectively skip the approval process depending on decisions in the past or on the type of client.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="user-approval-page" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The URL of the page that handles the user
- approval form (if needed, depending on the grant type).
- The default is "forward:/oauth/confirm_access" which is not handled
- by the authorization endpoint, so normally you
- will have to supply a handler
- for this path.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="error-page" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The URL of the page that handles errors (default forward:/oauth/error).
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="approval-parameter-name" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The name of the form parameter that is used to
- indicate user
- approval of the client
- authentication
- request.
- Default value: "user_oauth_approval".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="redirect-resolver-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the
- redirect resolver, used
- during the user
- authorization.
- Default
- value is an instance of
- "org.springframework.security.oauth2.provider.authorization_code.DefaultRedirectResolver".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="resource-server">
- <xs:annotation>
- <xs:documentation>
- Specifies that there are oauth 2 protected resources in
- the application context. This element
- has an
- id which is the bean id of the filter created. The filter
- should be added to the Spring Security filter chain at
- position before="PRE_AUTH_FILTER"
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="beans:identifiedType">
- <xs:attribute name="resource-id" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The resource id that is protected by this filter
- if any. If empty or
- absent then all resource ids
- are allowed,
- otherwise
- only tokens which are granted to a client that contains
- this reosurce
- id will be legal.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="token-services-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the token
- services. Default
- value is an instance of
- "org.springframework.security.oauth2.provider.token.DefaultTokenServices".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="entry-point-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the entry point for failed authentications. Defaults to
- a vanilla
- org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="auth-details-source-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the AuthenticationDetailsSource.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="client-details-service">
- <xs:annotation>
- <xs:documentation>
- Default element that contains the definition of the
- OAuth clients that are
- allowed to access this
- service.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="beans:identifiedType">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="client">
- <xs:annotation>
- <xs:documentation>
- Definition of a client that can act on behalf
- of a user.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="client-id" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>
- The client id.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="secret" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The client secret. If the secret is
- undefined or empty (the
- default) the client does
- not
- require a
- secret.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="redirect-uri" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The re-direct URI(s) established during
- registration (optional, comma separated).
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="resource-ids" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The resource ids to which this client can be
- granted access
- (comma-separated). If missing or
- empty all
- resources are
- accessible (not recommended by the spec).
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="scope" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The scopes to which the client is limited
- (comma-separated). If
- scope is undefined or empty
- (the
- default) the client
- is not limited by scope, but in that case
- the authorization
- service must explicitly
- accept unlimited
- access by not
- specifying any scopes itself.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="authorized-grant-types" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- Grant types that are authorized for the
- client to use
- (comma-separated). Currently defined
- grant types
- include
- "authorization_code", "password", "assertion", and
- "refresh_token". Default value is
- "authorization_code,refresh_token".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="authorities" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- Authorities that are granted to the client
- (comma-separated). Distinct
- from the authorities
- granted to
- the user on behalf
- of whom the client is acting.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="access-token-validity" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The access token validity period in seconds (optional). If unspecified a global default will
- be applied by the token services.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="refresh-token-validity" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The refresh token validity period in seconds (optional). If unspecified a global default
- will
- be applied by the token services.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="expression-handler">
- <xs:annotation>
- <xs:documentation>
- Element for declaring and configuring an expression
- handler for oauth
- security expressions. See
- http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="beans:identifiedType" />
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="web-expression-handler">
- <xs:annotation>
- <xs:documentation>
- Element for declaring and configuring an expression
- handler for oauth
- security expressions in http
- intercept urls. See
- http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="beans:identifiedType" />
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="client">
- <xs:annotation>
- <xs:documentation>
- Creates the oauth 2 client filter be be added to the
- application security policy.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="beans:identifiedType">
- <xs:attribute name="redirect-strategy-ref" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The reference to the bean that defines the
- redirect strategy, used when redirecting the user for
- access authorization. Default value is an instance of
- "org.springframework.security.web.DefaultRedirectStrategy".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="resource">
- <xs:annotation>
- <xs:documentation>
- Definition of a remote resource that is protected via
- OAuth2 to which this client application wants
- access.
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="beans:identifiedType">
- <xs:attribute name="type" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The grant type. Currently defined grant types
- include
- "authorization_code", "password", and
- "assertion".
- Default value
- is "authorization_code".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="client-id" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>
- The client id. This is the id by which the
- resource server will
- identify this application.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="access-token-uri" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The uri to where the access token may be
- obtained.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="scope" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- Comma-separted list of string specifying the
- scope of the access to the
- resource. By default,
- no
- scope will be
- specified.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="client-secret" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The secret asssociated with the resource. By
- default, no secret
- will be supplied for access to
- the resource.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="client-authentication-scheme" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The scheme that is used to pass the client
- secret. Suggested
- values: "header" and "form".
- Default:
- "header".
- See section 2.1 of the OAuth 2 spec.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="user-authorization-uri" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The uri to which the user will be redirected if
- the user is ever
- needed to grant an authorization
- code.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="authentication-scheme" default="header" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The method for bearing the token when accessing
- the resource.
- Default value is "header". See
- AuthenticationScheme enum for possible values.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="token-name" type="xs:string" default="access_token">
- <xs:annotation>
- <xs:documentation>
- The name of the bearer token. The default is
- "access_token", which
- is according to the spec,
- but
- some providers
- (e.g. Facebook) don't conform to the spec.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="pre-established-redirect-uri" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- Some resource servers may require a
- pre-established URI to which
- they will redirect users after
- users
- authorize an access token.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="use-current-uri" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- Boolean flag indicating that the current URI should be used as a redirect (if available) rather
- than the
- registered redirect URI. Default is true.
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="username" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The username for authentication, required only when type is "password".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="password" type="xs:string">
- <xs:annotation>
- <xs:documentation>
- The password for authentication, required only when type is "password".
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- </xs:schema>
|