You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/05/15 07:40:37 UTC
[camel] 02/03: CAMEL-16609 rest dsl - Add more security models for
JWT bearer tokens etc
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit b3d73338e17061bed352ee52cf9564d41257f2fb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat May 15 09:21:21 2021 +0200
CAMEL-16609 rest dsl - Add more security models for JWT bearer tokens etc
---
.../org/apache/camel/catalog/models.properties | 3 +
.../org/apache/camel/catalog/models/apiKey.json | 1 +
.../apache/camel/catalog/models/bearerToken.json | 18 +++++
.../org/apache/camel/catalog/models/mutualTLS.json | 17 +++++
.../org/apache/camel/catalog/models/oauth2.json | 3 +-
.../apache/camel/catalog/models/openIdConnect.json | 18 +++++
.../camel/catalog/models/securityDefinitions.json | 2 +-
.../apache/camel/catalog/schemas/camel-spring.xsd | 80 ++++++++++++++++++++++
8 files changed, 140 insertions(+), 2 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
index 353c9ff..d0d5f2f 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models.properties
@@ -10,6 +10,7 @@ batch-config
bean
beanPostProcessor
beanio
+bearerToken
bindy
blacklistServiceFilter
cachingServiceDiscovery
@@ -95,12 +96,14 @@ marshal
method
mime-multipart
multicast
+mutualTLS
mvel
oauth2
ognl
onCompletion
onException
onFallback
+openIdConnect
optimisticLockRetryPolicy
otherwise
outputType
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/apiKey.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/apiKey.json
index 3f9b203..10e78ce 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/apiKey.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/apiKey.json
@@ -14,6 +14,7 @@
"name": { "kind": "attribute", "displayName": "Name", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The name of the header or query parameter to be used." },
"inHeader": { "kind": "attribute", "displayName": "In Header", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To use header as the location of the API key." },
"inQuery": { "kind": "attribute", "displayName": "In Query", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To use query parameter as the location of the API key." },
+ "inCookie": { "kind": "attribute", "displayName": "In Cookie", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To use a cookie as the location of the API key." },
"key": { "kind": "attribute", "displayName": "Key", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Key used to refer to this security definition" },
"description": { "kind": "attribute", "displayName": "Description", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "A short description for security scheme." }
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/bearerToken.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/bearerToken.json
new file mode 100644
index 0000000..d0f1b12
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/bearerToken.json
@@ -0,0 +1,18 @@
+{
+ "model": {
+ "kind": "model",
+ "name": "bearerToken",
+ "title": "Bearer Token",
+ "description": "Rest security bearer token authentication definition",
+ "deprecated": false,
+ "label": "rest,security",
+ "javaType": "org.apache.camel.model.rest.RestSecurityBearerToken",
+ "input": false,
+ "output": false
+ },
+ "properties": {
+ "format": { "kind": "attribute", "displayName": "Format", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "A hint to the client to identify how the bearer token is formatted." },
+ "key": { "kind": "attribute", "displayName": "Key", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Key used to refer to this security definition" },
+ "description": { "kind": "attribute", "displayName": "Description", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "A short description for security scheme." }
+ }
+}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/mutualTLS.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/mutualTLS.json
new file mode 100644
index 0000000..64bd471
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/mutualTLS.json
@@ -0,0 +1,17 @@
+{
+ "model": {
+ "kind": "model",
+ "name": "mutualTLS",
+ "title": "Mutual TLS",
+ "description": "Rest security mutual TLS authentication definition",
+ "deprecated": false,
+ "label": "rest,security",
+ "javaType": "org.apache.camel.model.rest.RestSecurityMutualTLS",
+ "input": false,
+ "output": false
+ },
+ "properties": {
+ "key": { "kind": "attribute", "displayName": "Key", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Key used to refer to this security definition" },
+ "description": { "kind": "attribute", "displayName": "Description", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "A short description for security scheme." }
+ }
+}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/oauth2.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/oauth2.json
index 17a24a9..af933c1 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/oauth2.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/oauth2.json
@@ -13,7 +13,8 @@
"properties": {
"authorizationUrl": { "kind": "attribute", "displayName": "Authorization Url", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The authorization URL to be used for this flow. This SHOULD be in the form of a URL. Required for implicit and access code flows" },
"tokenUrl": { "kind": "attribute", "displayName": "Token Url", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The token URL to be used for this flow. This SHOULD be in the form of a URL. Required for password, application, and access code flows." },
- "flow": { "kind": "attribute", "displayName": "Flow", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "accessCode", "application", "implicit", "password" ], "deprecated": false, "autowired": false, "secret": false, "description": "The flow used by the OAuth2 security scheme. Valid values are implicit, password, application or accessCode." },
+ "refreshUrl": { "kind": "attribute", "displayName": "Refresh Url", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL." },
+ "flow": { "kind": "attribute", "displayName": "Flow", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "accessCode", "application", "authorizationCode", "clientCredentials", "implicit", "password" ], "deprecated": false, "autowired": false, "secret": false, "description": "The flow used by the OAuth2 security scheme. Valid values are implicit, password, application or accessCode." },
"scopes": { "kind": "element", "displayName": "Scopes", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.rest.RestPropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "The available scopes for an OAuth2 security scheme" },
"key": { "kind": "attribute", "displayName": "Key", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Key used to refer to this security definition" },
"description": { "kind": "attribute", "displayName": "Description", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "A short description for security scheme." }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/openIdConnect.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/openIdConnect.json
new file mode 100644
index 0000000..9418595
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/openIdConnect.json
@@ -0,0 +1,18 @@
+{
+ "model": {
+ "kind": "model",
+ "name": "openIdConnect",
+ "title": "Open Id Connect",
+ "description": "Rest security OpenID Connect definition",
+ "deprecated": false,
+ "label": "rest,security",
+ "javaType": "org.apache.camel.model.rest.RestSecurityOpenIdConnect",
+ "input": false,
+ "output": false
+ },
+ "properties": {
+ "url": { "kind": "attribute", "displayName": "Url", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "OpenId Connect URL to discover OAuth2 configuration values." },
+ "key": { "kind": "attribute", "displayName": "Key", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Key used to refer to this security definition" },
+ "description": { "kind": "attribute", "displayName": "Description", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "A short description for security scheme." }
+ }
+}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/securityDefinitions.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/securityDefinitions.json
index 6ab871b..e43059c 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/securityDefinitions.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/securityDefinitions.json
@@ -11,6 +11,6 @@
"output": false
},
"properties": {
- "securityDefinitions": { "kind": "element", "displayName": "Security Definitions", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.rest.RestSecurityDefinition>", "oneOf": [ "apiKey", "basicAuth", "oauth2" ], "deprecated": false, "autowired": false, "secret": false, "description": "Security definitions" }
+ "securityDefinitions": { "kind": "element", "displayName": "Security Definitions", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.rest.RestSecurityDefinition>", "oneOf": [ "apiKey", "basicAuth", "bearer", "mutualTLS", "oauth2", "openIdConnect" ], "deprecated": false, "autowired": false, "secret": false, "description": "Security definitions" }
}
}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index a87c100..e202ad2 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -98,6 +98,14 @@ or fixed length formats).
</xs:annotation>
</xs:element>
+ <xs:element name="bearerToken" type="tns:restSecurityBearerToken">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"><![CDATA[
+Rest security bearer token authentication definition
+ ]]></xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
<xs:element name="bindy" type="tns:bindyDataFormat">
<xs:annotation>
<xs:documentation xml:lang="en"><![CDATA[
@@ -821,6 +829,14 @@ Routes the same message to multiple paths either sequentially or in parallel.
</xs:annotation>
</xs:element>
+ <xs:element name="mutualTLS" type="tns:restSecurityMutualTLS">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"><![CDATA[
+Rest security mutual TLS authentication definition
+ ]]></xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
<xs:element name="mvel" type="tns:mvelExpression">
<xs:annotation>
<xs:documentation xml:lang="en"><![CDATA[
@@ -870,6 +886,14 @@ Route to be executed when Hystrix EIP executes fallback
</xs:annotation>
</xs:element>
+ <xs:element name="openIdConnect" type="tns:restSecurityOpenIdConnect">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"><![CDATA[
+Rest security OpenID Connect definition
+ ]]></xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
<xs:element name="optimisticLockRetryPolicy" type="tns:optimisticLockRetryPolicyDefinition">
<xs:annotation>
<xs:documentation xml:lang="en"><![CDATA[
@@ -14482,7 +14506,10 @@ is true.
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="tns:apiKey"/>
<xs:element ref="tns:basicAuth"/>
+ <xs:element name="bearer" type="tns:restSecurityBearerToken"/>
<xs:element ref="tns:oauth2"/>
+ <xs:element ref="tns:openIdConnect"/>
+ <xs:element ref="tns:mutualTLS"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
@@ -14512,6 +14539,13 @@ To use query parameter as the location of the API key. Default value: false
]]></xs:documentation>
</xs:annotation>
</xs:attribute>
+ <xs:attribute name="inCookie" type="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"><![CDATA[
+To use a cookie as the location of the API key. Default value: false
+ ]]></xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -14542,6 +14576,21 @@ A short description for security scheme.
</xs:complexContent>
</xs:complexType>
+ <xs:complexType name="restSecurityBearerToken">
+ <xs:complexContent>
+ <xs:extension base="tns:restSecurityDefinition">
+ <xs:sequence/>
+ <xs:attribute name="format" type="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"><![CDATA[
+A hint to the client to identify how the bearer token is formatted.
+ ]]></xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
<xs:complexType name="restSecurityOAuth2">
<xs:complexContent>
<xs:extension base="tns:restSecurityDefinition">
@@ -14570,6 +14619,14 @@ Required for password, application, and access code flows.
]]></xs:documentation>
</xs:annotation>
</xs:attribute>
+ <xs:attribute name="refreshUrl" type="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"><![CDATA[
+The URL to be used for obtaining refresh tokens. This MUST be in the form of a
+URL.
+ ]]></xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
<xs:attribute name="flow" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en"><![CDATA[
@@ -14582,6 +14639,29 @@ password, application or accessCode.
</xs:complexContent>
</xs:complexType>
+ <xs:complexType name="restSecurityOpenIdConnect">
+ <xs:complexContent>
+ <xs:extension base="tns:restSecurityDefinition">
+ <xs:sequence/>
+ <xs:attribute name="url" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"><![CDATA[
+OpenId Connect URL to discover OAuth2 configuration values.
+ ]]></xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="restSecurityMutualTLS">
+ <xs:complexContent>
+ <xs:extension base="tns:restSecurityDefinition">
+ <xs:sequence/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
<xs:complexType name="restSecuritiesRequirement">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="securityRequirement" type="tns:securityDefinition"/>