[ofbiz-plugins] branch trunk updated: Implemented: Added service definition and implementation to generate JWT auth token(OFBIZ-11995)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[ofbiz-plugins] branch trunk updated: Implemented: Added service definition and implementation to generate JWT auth token(OFBIZ-11995)

grv-2
This is an automated email from the ASF dual-hosted git repository.

grv pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-plugins.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 7a92f06  Implemented: Added service definition and implementation to generate JWT auth token(OFBIZ-11995)
7a92f06 is described below

commit 7a92f0640adfcac68f7da99c7848048e3262d119
Author: Girish Vasmatkar <[hidden email]>
AuthorDate: Thu Sep 17 11:41:07 2020 +0530

    Implemented: Added service definition and implementation to generate JWT auth token(OFBIZ-11995)
---
 ofbiz-rest-impl/servicedef/services.xml            | 12 +++---
 .../apache/ofbiz/ws/rs/services/RestServices.java  | 50 ++++++++++++++++++++++
 2 files changed, 57 insertions(+), 5 deletions(-)

diff --git a/ofbiz-rest-impl/servicedef/services.xml b/ofbiz-rest-impl/servicedef/services.xml
index 3e5f419..cdef6d7 100644
--- a/ofbiz-rest-impl/servicedef/services.xml
+++ b/ofbiz-rest-impl/servicedef/services.xml
@@ -24,10 +24,12 @@ under the License.
     <vendor></vendor>
     <version>1.0</version>
 
-    <service name="noSyntaxError" engine="interface">
-        <description>
-            Dummy service to prevent empty files and syntax error - Remove when the 1st real service will be added here
-        </description>
+    <service name="generateAuthTokenService" engine="java" require-new-transaction="true" max-retry="3"
+            location="org.apache.ofbiz.ws.rs.services.RestServices" invoke="generateAuthToken">
+        <description>Generates Authorization Token for the userLogin</description>
+        <attribute name="access_token" type="String" mode="OUT" optional="false"/>
+        <attribute name="expires_in" type="String" mode="OUT" optional="false"/>
+        <attribute name="token_type" type="String" mode="OUT" optional="false"/>
     </service>
 
-</services>
\ No newline at end of file
+</services>
diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/services/RestServices.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/services/RestServices.java
new file mode 100644
index 0000000..cb06c90
--- /dev/null
+++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/services/RestServices.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+package org.apache.ofbiz.ws.rs.services;
+
+import java.util.Map;
+
+import org.apache.ofbiz.base.util.Debug;
+import org.apache.ofbiz.base.util.UtilMisc;
+import org.apache.ofbiz.entity.Delegator;
+import org.apache.ofbiz.entity.GenericValue;
+import org.apache.ofbiz.entity.util.EntityUtilProperties;
+import org.apache.ofbiz.service.DispatchContext;
+import org.apache.ofbiz.service.ServiceUtil;
+import org.apache.ofbiz.webapp.control.JWTManager;
+
+public final class RestServices {
+
+    private static final String MODULE = RestServices.class.getName();
+
+    private RestServices() { }
+
+    public static Map<String, Object> generateAuthToken(DispatchContext ctx, Map<String, Object> context) {
+        Delegator delegator = ctx.getDelegator();
+        GenericValue userLogin = (GenericValue) context.get("userLogin");
+        String userLoginStr = userLogin.getString("userLoginId");
+        Debug.logInfo("Generating auth token for userLogin: " + userLoginStr, MODULE);
+        String jwtToken = JWTManager.createJwt(delegator, UtilMisc.toMap("userLoginId", userLoginStr));
+        Map<String, Object> success = ServiceUtil.returnSuccess();
+        success.put("access_token", jwtToken);
+        success.put("expires_in", EntityUtilProperties.getPropertyValue("security", "security.jwt.token.expireTime", "1800", delegator));
+        success.put("token_type", "Bearer");
+        return success;
+    }
+}