diff --git a/pom.xml b/pom.xml
index 7b16730..1c7000f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
20211205
2.8.1
1.5.0
- v0.0.16-SNAPSHOT
+ v0.0.4
3.9.0
3.0.0-RC1
diff --git a/src/main/java/com/fynd/extension/config/BaseMVCConfigurer.java b/src/main/java/com/fynd/extension/config/BaseMVCConfigurer.java
index 3c060df..7b3be2f 100644
--- a/src/main/java/com/fynd/extension/config/BaseMVCConfigurer.java
+++ b/src/main/java/com/fynd/extension/config/BaseMVCConfigurer.java
@@ -13,20 +13,25 @@
public class BaseMVCConfigurer implements WebMvcConfigurer {
@Autowired
- private SessionInterceptor sessionInterceptor;
+ SessionInterceptor sessionInterceptor;
@Autowired
- private PlatformInterceptor platformInterceptor;
+ PlatformInterceptor platformInterceptor;
@Autowired
- private ApplicationInterceptor applicationInterceptor;
+ ApplicationInterceptor applicationInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(sessionInterceptor).addPathPatterns("/fp/auth","/platform/**").order(Ordered.HIGHEST_PRECEDENCE);
- registry.addInterceptor(platformInterceptor).addPathPatterns("/platform/**").order(Ordered.LOWEST_PRECEDENCE);
- registry.addInterceptor(applicationInterceptor).addPathPatterns("/application/**");
+ registry.addInterceptor(sessionInterceptor)
+ .addPathPatterns("/fp/auth", "/platform/**")
+ .order(Ordered.HIGHEST_PRECEDENCE);
+ registry.addInterceptor(platformInterceptor)
+ .addPathPatterns("/platform/**")
+ .order(Ordered.LOWEST_PRECEDENCE);
+ registry.addInterceptor(applicationInterceptor)
+ .addPathPatterns("/application/**");
}
}
diff --git a/src/main/java/com/fynd/extension/controllers/ExtensionController.java b/src/main/java/com/fynd/extension/controllers/ExtensionController.java
index 62b9f3a..51cb510 100644
--- a/src/main/java/com/fynd/extension/controllers/ExtensionController.java
+++ b/src/main/java/com/fynd/extension/controllers/ExtensionController.java
@@ -16,10 +16,7 @@
import com.sdk.platform.PlatformConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseCookie;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@@ -49,8 +46,7 @@ public class ExtensionController {
@GetMapping(path = "/install")
public ResponseEntity> install(@RequestParam(value = "company_id") String companyId,
@RequestParam(value = "application_id", required = false) String applicationId,
- HttpServletResponse response,
- HttpServletRequest request) {
+ HttpServletResponse response, HttpServletRequest request) {
try {
if (StringUtils.isEmpty(companyId)) {
@@ -64,15 +60,13 @@ public ResponseEntity> install(@RequestParam(value = "company_id") String comp
if (ext.isOnlineAccessMode()) {
session = new Session(Session.generateSessionId(true, null), true);
} else {
- sid = Session.generateSessionId(false, new Option(companyId,
- ext.getExtensionProperties()
- .getCluster()));
+ sid = Session.generateSessionId(false, new Option(companyId, ext.getExtensionProperties()
+ .getCluster()));
session = sessionStorage.getSession(sid);
if (ObjectUtils.isEmpty(session)) {
session = new Session(sid, true);
- } else if (!Objects.equals(session.getExtension_id(),
- ext.getExtensionProperties()
- .getApi_key())) {
+ } else if (!Objects.equals(session.getExtension_id(), ext.getExtensionProperties()
+ .getApi_key())) {
session = new Session(sid, true);
}
}
@@ -122,13 +116,13 @@ public ResponseEntity> install(@RequestParam(value = "company_id") String comp
// start authorization flow
String redirectUrl = platformConfig.getPlatformOauthClient()
.getAuthorizationURL(session.getScope(), authCallback,
- session.getState(),
- ext.isOnlineAccessMode());
+ session.getState(), ext.isOnlineAccessMode());
sessionStorage.saveSession(session);
- return ResponseEntity.status(HttpStatus.PERMANENT_REDIRECT)
+ return ResponseEntity.status(HttpStatus.TEMPORARY_REDIRECT)
.header(Fields.X_COMPANY_ID, companyId)
.header(HttpHeaders.LOCATION, redirectUrl)
.header(HttpHeaders.SET_COOKIE, resCookie.toString())
+// .cacheControl(CacheControl.noCache())
.build();
} catch (Exception error) {
log.error("Exception in install call ", error);
@@ -143,13 +137,11 @@ public ResponseEntity> authorize(@RequestParam(value = "company_id") String co
@RequestParam(value = "code", required = false) String code,
@RequestParam(value = "state") String state,
@RequestParam(value = "application_id", required = false) String applicationId,
- HttpServletRequest request,
- HttpServletResponse response) {
+ HttpServletRequest request, HttpServletResponse response) {
try {
if (!ExtensionContext.isPresent(FDK_SESSION)) {
- throw new FdkSessionNotFound(
- "Can not complete oauth process as session not found");
+ throw new FdkSessionNotFound("Can not complete oauth process as session not found");
}
Session fdkSession = ExtensionContext.get(FDK_SESSION, Session.class);
if (!fdkSession.getState()
@@ -181,8 +173,7 @@ public ResponseEntity> authorize(@RequestParam(value = "company_id") String co
sessionStorage.saveSession(fdkSession);
String compCookieName = FdkConstants.SESSION_COOKIE_NAME + "_" + fdkSession.getCompany_id();
- ResponseCookie resCookie = ResponseCookie.from(compCookieName,
- fdkSession.getId())
+ ResponseCookie resCookie = ResponseCookie.from(compCookieName, fdkSession.getId())
.httpOnly(true)
.sameSite("None")
.secure(true)
@@ -195,16 +186,14 @@ public ResponseEntity> authorize(@RequestParam(value = "company_id") String co
ExtensionContext.set(EXTENSION, ext);
ExtensionContext.set(COMPANY_ID, companyId);
ExtensionContext.set(APPLICATION_ID, applicationId);
- if (Objects.nonNull(ext.getWebhookService()) &&
- Objects.nonNull(ext.getExtensionProperties()
- .getWebhook()) &&
- Objects.nonNull(ext.getExtensionProperties()
- .getWebhook()
- .getSubscribe_on_install()) &&
+ if (Objects.nonNull(ext.getWebhookService()) && Objects.nonNull(ext.getExtensionProperties()
+ .getWebhook()) && Objects.nonNull(
ext.getExtensionProperties()
.getWebhook()
- .getSubscribe_on_install()
- .equals(Boolean.TRUE)) {
+ .getSubscribe_on_install()) && ext.getExtensionProperties()
+ .getWebhook()
+ .getSubscribe_on_install()
+ .equals(Boolean.TRUE)) {
PlatformClient platformClient = ext.getPlatformClient(companyId, token);
ext.getWebhookService()
.syncEvents(platformClient, null);
@@ -214,10 +203,11 @@ public ResponseEntity> authorize(@RequestParam(value = "company_id") String co
.getAuth()
.apply(ExtensionContext.get());
- return ResponseEntity.status(HttpStatus.PERMANENT_REDIRECT)
+ return ResponseEntity.status(HttpStatus.TEMPORARY_REDIRECT)
.header(Fields.X_COMPANY_ID, fdkSession.getCompany_id())
.header(HttpHeaders.LOCATION, redirectUrl)
.header(HttpHeaders.SET_COOKIE, resCookie.toString())
+// .cacheControl(CacheControl.noCache())
.build();
} catch (Exception error) {
log.error("Exception in auth call ", error);
@@ -228,15 +218,13 @@ public ResponseEntity> authorize(@RequestParam(value = "company_id") String co
}
@PostMapping(path = "/uninstall")
- public ResponseEntity> uninstall(@RequestBody Client client,
- HttpServletRequest request,
- HttpServletResponse response
- ) {
+ public ResponseEntity> uninstall(@RequestBody Client client, HttpServletRequest request,
+ HttpServletResponse response) {
try {
if (!ext.isOnlineAccessMode()) {
- String sid = Session.generateSessionId(false,
- new Option(client.getCompany_id(), ext.getExtensionProperties()
- .getCluster()));
+ String sid = Session.generateSessionId(false, new Option(client.getCompany_id(),
+ ext.getExtensionProperties()
+ .getCluster()));
Session fdkSession = sessionStorage.getSession(sid);
AccessToken rawToken = new AccessToken();
rawToken.setExpiresIn(fdkSession.getExpires_in());
diff --git a/src/main/java/com/fynd/extension/middleware/SessionInterceptor.java b/src/main/java/com/fynd/extension/middleware/SessionInterceptor.java
index 03cec19..259ed48 100644
--- a/src/main/java/com/fynd/extension/middleware/SessionInterceptor.java
+++ b/src/main/java/com/fynd/extension/middleware/SessionInterceptor.java
@@ -4,6 +4,7 @@
import com.fynd.extension.session.Session;
import com.fynd.extension.session.SessionStorage;
import com.fynd.extension.utils.ExtensionContext;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
@@ -23,6 +24,7 @@
import static com.fynd.extension.utils.ExtensionContext.Keys.FDK_SESSION;
@Component
+@Slf4j
public class SessionInterceptor implements HandlerInterceptor {
@Autowired