Merge pull request #51 from paoloantinori/KEYCLOAK-3678
KEYCLOAK-3678 - Docs - Added Camel RestDSL
This commit is contained in:
commit
e912dd5eb2
1 changed files with 60 additions and 0 deletions
|
@ -93,3 +93,63 @@ org.osgi.service.blueprint.container,
|
||||||
org.osgi.service.event,
|
org.osgi.service.event,
|
||||||
----
|
----
|
||||||
|
|
||||||
|
===== Camel RestDSL
|
||||||
|
|
||||||
|
Camel RestDSL is a Camel feature to define your REST endpoints in a fluent way.
|
||||||
|
But under the hood, the capability to provide all this magic, is still demanded to specific implementation classes and
|
||||||
|
you have to instruct them on how to integrate with Keycloak.
|
||||||
|
|
||||||
|
The way to configure the integration mechanism depends on the Camel component that you configure your RestDSL defined routes to work with.
|
||||||
|
|
||||||
|
This is an example that show how to do it while using Jetty engine, with reference to some beans defined in the example above.
|
||||||
|
|
||||||
|
[source,xml]
|
||||||
|
----
|
||||||
|
<bean id="securityHandlerRest" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
|
||||||
|
<property name="authenticator" ref="keycloakAuthenticator" />
|
||||||
|
<property name="constraintMappings">
|
||||||
|
<list>
|
||||||
|
<ref component-id="constraintMapping" />
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
<property name="authMethod" value="BASIC"/>
|
||||||
|
<property name="realmName" value="does-not-matter"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="sessionHandlerRest" class="org.keycloak.adapters.jetty.spi.WrappingSessionHandler">
|
||||||
|
<property name="handler" ref="securityHandlerRest" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
|
<camelContext id="blueprintContext"
|
||||||
|
trace="false"
|
||||||
|
xmlns="http://camel.apache.org/schema/blueprint">
|
||||||
|
|
||||||
|
<restConfiguration component="jetty" contextPath="/restdsl"
|
||||||
|
port="8484">
|
||||||
|
<!--the link with Keycloak security handlers happens here-->
|
||||||
|
<endpointProperty key="handlers" value="sessionHandlerRest"></endpointProperty>
|
||||||
|
<endpointProperty key="matchOnUriPrefix" value="true"></endpointProperty>
|
||||||
|
</restConfiguration>
|
||||||
|
|
||||||
|
<rest path="/hello" >
|
||||||
|
<description>Hello rest service</description>
|
||||||
|
<get uri="/{id}" outType="java.lang.String">
|
||||||
|
<description>Just an helllo</description>
|
||||||
|
<to uri="direct:justDirect" />
|
||||||
|
</get>
|
||||||
|
|
||||||
|
</rest>
|
||||||
|
|
||||||
|
<route id="justDirect">
|
||||||
|
<from uri="direct:justDirect"/>
|
||||||
|
<process ref="helloProcessor" />
|
||||||
|
<log message="RestDSL correctly invoked ${body}"/>
|
||||||
|
<setBody>
|
||||||
|
<constant>(__This second sentence is returned from a Camel RestDSL endpoint__)</constant>
|
||||||
|
</setBody>
|
||||||
|
</route>
|
||||||
|
|
||||||
|
</camelContext>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
Loading…
Reference in a new issue