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,
|
||||
----
|
||||
|
||||
===== 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