keycloak-aplcache

KEYCLOAK-1043 Fix fuse packaging due to bouncycastle update.

3/6/2015 4:32:50 PM

Details

diff --git a/distribution/osgi/features/src/main/resources/features.xml b/distribution/osgi/features/src/main/resources/features.xml
index d56602b..7cda6d1 100644
--- a/distribution/osgi/features/src/main/resources/features.xml
+++ b/distribution/osgi/features/src/main/resources/features.xml
@@ -4,7 +4,8 @@
     <feature name="keycloak-adapter-core" version="${project.version}" resolver="(obr)">
         <details>The keycloak adapter core stuff</details>
         <bundle dependency="true">mvn:org.keycloak/keycloak-osgi-thirdparty/${project.version}</bundle>
-        <bundle dependency="true">mvn:org.bouncycastle/bcprov-jdk16/${bouncycastle.version}</bundle>
+        <bundle dependency="true">mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle.crypto.version}</bundle>
+        <bundle dependency="true">mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle.crypto.version}</bundle>
         <bundle dependency="true">mvn:org.codehaus.jackson/jackson-core-asl/${jackson.version}</bundle>
         <bundle dependency="true">mvn:org.codehaus.jackson/jackson-mapper-asl/${jackson.version}</bundle>
         <bundle dependency="true">mvn:org.codehaus.jackson/jackson-xc/${jackson.version}</bundle>
diff --git a/examples/fuse/camel/pom.xml b/examples/fuse/camel/pom.xml
index a81554e..568e281 100644
--- a/examples/fuse/camel/pom.xml
+++ b/examples/fuse/camel/pom.xml
@@ -31,6 +31,11 @@
 
     <dependencies>
         <dependency>
+            <groupId>org.keycloak</groupId>
+            <artifactId>keycloak-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-core</artifactId>
             <version>${camel.version}</version>
diff --git a/examples/fuse/camel/src/main/java/org/keycloak/example/CamelHelloProcessor.java b/examples/fuse/camel/src/main/java/org/keycloak/example/CamelHelloProcessor.java
new file mode 100644
index 0000000..1009c5c
--- /dev/null
+++ b/examples/fuse/camel/src/main/java/org/keycloak/example/CamelHelloProcessor.java
@@ -0,0 +1,40 @@
+package org.keycloak.example;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Hashtable;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.InitialDirContext;
+import javax.security.sasl.Sasl;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.ietf.jgss.GSSCredential;
+import org.keycloak.KeycloakPrincipal;
+import org.keycloak.constants.KerberosConstants;
+import org.keycloak.representations.AccessToken;
+import org.keycloak.util.KerberosSerializationUtils;
+
+/**
+ * @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
+ */
+public class CamelHelloProcessor implements Processor {
+
+    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    @Override
+    public void process(Exchange exchange) throws Exception {
+        HttpServletRequest req = exchange.getIn().getBody(HttpServletRequest.class);
+        KeycloakPrincipal keycloakPrincipal = (KeycloakPrincipal) req.getUserPrincipal();
+        AccessToken accessToken = keycloakPrincipal.getKeycloakSecurityContext().getToken();
+        String username = accessToken.getPreferredUsername();
+
+        // send a html response with fullName from LDAP
+        exchange.getOut().setBody("<html><body>Hello " + username + "! It's " + sdf.format(new Date()) + "</body></html>");
+    }
+}
diff --git a/examples/fuse/camel/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/examples/fuse/camel/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 0dc0fdd..f2cecf9 100644
--- a/examples/fuse/camel/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/examples/fuse/camel/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -49,18 +49,15 @@
         <property name="handler" ref="securityHandler" />
     </bean>
 
-    <bean id="helloBean" class="org.keycloak.example.CamelHelloBean" />
+    <bean id="helloProcessor" class="org.keycloak.example.CamelHelloProcessor" />
 
     <camelContext id="blueprintContext"
                   trace="false"
                   xmlns="http://camel.apache.org/schema/blueprint">
         <route id="httpBridge">
             <from uri="jetty:http://0.0.0.0:8383/admin-camel-endpoint?handlers=sessionHandler&amp;matchOnUriPrefix=true" />
-            <setBody>
-                <method ref="helloBean" method="hello"/>
-            </setBody>
+            <process ref="helloProcessor" />
             <log message="The message from camel endpoint contains ${body}"/>
-            <to uri="mock:result"/>
         </route>
     </camelContext>
 
diff --git a/examples/fuse/customer-app-fuse/src/main/java/org/keycloak/example/CamelClient.java b/examples/fuse/customer-app-fuse/src/main/java/org/keycloak/example/CamelClient.java
index 9ddb8f1..6e27e30 100644
--- a/examples/fuse/customer-app-fuse/src/main/java/org/keycloak/example/CamelClient.java
+++ b/examples/fuse/customer-app-fuse/src/main/java/org/keycloak/example/CamelClient.java
@@ -30,7 +30,7 @@ public class CamelClient {
             try {
                 HttpResponse response = client.execute(get);
                 if (response.getStatusLine().getStatusCode() != 200) {
-                    return "There was a failure processing request.  You either didn't configure Keycloak properly or you don't have enought permission? Status code is "
+                    return "There was a failure processing request.  You either didn't configure Keycloak properly or you don't have admin permission? Status code is "
                             + response.getStatusLine().getStatusCode();
                 }
                 HttpEntity entity = response.getEntity();
diff --git a/examples/fuse/customer-app-fuse/src/main/webapp/customers/camel.jsp b/examples/fuse/customer-app-fuse/src/main/webapp/customers/camel.jsp
index 1d29927..6b7c591 100755
--- a/examples/fuse/customer-app-fuse/src/main/webapp/customers/camel.jsp
+++ b/examples/fuse/customer-app-fuse/src/main/webapp/customers/camel.jsp
@@ -8,7 +8,7 @@
     <title>Camel page</title>
   </head>
   <body bgcolor="#E3F6CE">
-    <p>You will receive info from camel endpoint. Endpoint is accessible just for admin user</p>
+    <p>You will receive info from camel endpoint. Endpoint is accessible just for user with admin role</p>
     <p>Response from camel: <b><%= CamelClient.sendRequest(request) %></b> </p>
     <br><br>
   </body>
diff --git a/examples/fuse/README.md b/examples/fuse/README.md
index 8b1508c..d9c81c5 100644
--- a/examples/fuse/README.md
+++ b/examples/fuse/README.md
@@ -31,7 +31,8 @@ Base steps
 ----------
 
 * Run external instance of Keycloak server on WildFly 8 or JBoss EAP 6.3 . Fuse demo suppose that server is running on [http://localhost:8080/auth](http://localhost:8080/auth)
-* Import realm `demo` from the file testrealm.json on `examples/fuse/testrealm.json` .
+* Import realm `demo` from the file testrealm.json on `examples/fuse/testrealm.json` . See [here](../demo-template/README.md#step-3-import-the-test-realm) 
+the details on how to import the realm
 * Then build examples, which is needed so the feature repository is added to your local maven repo:
 
 ```