diff --git a/Dockerfile b/Dockerfile
index 424853c..358d368 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -74,6 +74,6 @@ COPY --from=buildFront /tmp/dist /application/karideo/
WORKDIR /application/
-EXPOSE 18080
+EXPOSE 80
CMD ["java", "-Xms64M", "-Xmx1G", "-cp", "/application/application.jar", "org.kar.karideo.WebLauncher"]
diff --git a/back/pom.xml b/back/pom.xml
index fd49d60..9ce198c 100644
--- a/back/pom.xml
+++ b/back/pom.xml
@@ -70,7 +70,7 @@
mysql
mysql-connector-java
- 5.1.45
+ 8.0.30
org.glassfish.jersey.media
diff --git a/back/src/org/kar/karideo/WebLauncher.java b/back/src/org/kar/karideo/WebLauncher.java
index cd3cd2a..a2a651e 100755
--- a/back/src/org/kar/karideo/WebLauncher.java
+++ b/back/src/org/kar/karideo/WebLauncher.java
@@ -1,6 +1,7 @@
package org.kar.karideo;
import org.glassfish.grizzly.http.server.HttpServer;
+
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.glassfish.jersey.server.ResourceConfig;
@@ -14,12 +15,37 @@ import org.kar.karideo.util.JWTWrapper;
import org.glassfish.jersey.jackson.JacksonFeature;
import javax.ws.rs.core.UriBuilder;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
import java.net.URI;
-import java.util.Properties;
+class UpdateJwtPublicKey extends Thread {
+ boolean kill = false;
+ public void run() {
+ try {
+ Thread.sleep(1000*20, 0);
+ } catch (InterruptedException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ while (this.kill == false) {
+ // need to uppgrade when server call us...
+ try {
+ JWTWrapper.initLocalTokenRemote(ConfigVariable.getSSOAddress(), "karideo");
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ System.out.println("Can not retreive the basic tocken");
+ return;
+ }
+ try {
+ Thread.sleep(1000*60*5, 0);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ public void kill() {
+ this.kill = true;
+ }
+}
public class WebLauncher {
public static DBConfig dbConfig;
@@ -29,25 +55,15 @@ public class WebLauncher {
private static URI getBaseURI() {
return UriBuilder.fromUri(ConfigVariable.getlocalAddress()).build();
}
-
+
public static void main(String[] args) {
+
+ // ===================================================================
+ // Configure resources
+ // ===================================================================
ResourceConfig rc = new ResourceConfig();
- // need to uppgrade when server call us...
- try {
- JWTWrapper.initLocalTokenRemote(ConfigVariable.getSSOAddress(), "karideo");
- } catch (Exception e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- System.out.println("Wait 10 seconds ....");
- try {
- Thread.sleep(10000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return;
- }
- // add multipart models ..
+ // add multi-part models ..
//rc.register(new MultiPartFeature());
//rc.register(new InjectionBinder());
rc.register(new MultiPartFeature());
@@ -69,7 +85,7 @@ public class WebLauncher {
rc.registerClasses(VideoResource.class);
rc.registerClasses(HealthCheck.class);
rc.registerClasses(Front.class);
- // add jackson to be discovenr when we are ins standalone server
+ // add jackson to be discover when we are ins standalone server
rc.register(JacksonFeature.class);
// enable this to show low level request
//rc.property(LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL_SERVER, Level.WARNING.getName());
@@ -96,7 +112,16 @@ public class WebLauncher {
}
}, "shutdownHook"));
- // run
+
+ // ===================================================================
+ // start periodic update of the token ...
+ // ===================================================================
+ UpdateJwtPublicKey keyUpdater = new UpdateJwtPublicKey();
+ keyUpdater.start();
+
+ // ===================================================================
+ // run JERSEY
+ // ===================================================================
try {
server.start();
System.out.println("Jersey app started at " + getBaseURI());
@@ -106,5 +131,12 @@ public class WebLauncher {
System.out.println("There was an error while starting Grizzly HTTP server.");
e.printStackTrace();
}
+ keyUpdater.kill();
+ try {
+ keyUpdater.join(4000, 0);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
}
}
diff --git a/back/src/org/kar/karideo/api/HealthCheck.java b/back/src/org/kar/karideo/api/HealthCheck.java
index d24a1f3..c7d8c52 100644
--- a/back/src/org/kar/karideo/api/HealthCheck.java
+++ b/back/src/org/kar/karideo/api/HealthCheck.java
@@ -3,6 +3,9 @@ package org.kar.karideo.api;
import javax.annotation.security.PermitAll;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.kar.karideo.util.JWTWrapper;
@Path("/health_check")
@Produces(MediaType.APPLICATION_JSON)
@@ -16,7 +19,10 @@ public class HealthCheck {
// todo : do it better...
@GET
@PermitAll
- public HealthResult getHealth() {
- return new HealthResult("alive and kicking");
+ public Response getHealth() {
+ if (JWTWrapper.getPublicKey() == null) {
+ return Response.status(500).entity(new HealthResult("Missing Jwt public token")).build();
+ }
+ return Response.status(200).entity(new HealthResult("alive and kicking")).build();
}
}
diff --git a/back/src/org/kar/karideo/db/DBConfig.java b/back/src/org/kar/karideo/db/DBConfig.java
index aadc4b2..ec608d3 100644
--- a/back/src/org/kar/karideo/db/DBConfig.java
+++ b/back/src/org/kar/karideo/db/DBConfig.java
@@ -55,6 +55,6 @@ public class DBConfig {
}
public String getUrl() {
- return "jdbc:mysql://" + this.hostname + ":" + this.port + "/" + this.dbName + "?useSSL=false&serverTimezone=UTC";
+ return "jdbc:mysql://" + this.hostname + ":" + this.port + "/" + this.dbName + "?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC";
}
}
diff --git a/back/src/org/kar/karideo/util/ConfigVariable.java b/back/src/org/kar/karideo/util/ConfigVariable.java
index bedcc4a..82f5ef6 100644
--- a/back/src/org/kar/karideo/util/ConfigVariable.java
+++ b/back/src/org/kar/karideo/util/ConfigVariable.java
@@ -1,9 +1,10 @@
package org.kar.karideo.util;
public class ConfigVariable {
+ public static final String BASE_NAME = "ORG_KARIDEO_";
public static String getTmpDataFolder() {
- String out = System.getenv("org.kar.karideo.dataTmpFolder");
+ String out = System.getenv(BASE_NAME + "DATA_TMP_FOLDER");
if (out == null) {
return "/application/data/tmp";
}
@@ -11,7 +12,7 @@ public class ConfigVariable {
}
public static String getMediaDataFolder() {
- String out = System.getenv("org.kar.karideo.dataFolder");
+ String out = System.getenv(BASE_NAME + "DATA_FOLDER");
if (out == null) {
return "/application/data/media";
}
@@ -19,7 +20,7 @@ public class ConfigVariable {
}
public static String getFrontFolder() {
- String out = System.getenv("ORG_KARIDEO_FRONT_FOLDER");
+ String out = System.getenv(BASE_NAME + "FRONT_FOLDER");
if (out == null) {
return "/application/karideo";
}
@@ -28,7 +29,7 @@ public class ConfigVariable {
public static String getDBHost() {
- String out = System.getenv("ORG_KARIDEO_DB_HOST");
+ String out = System.getenv(BASE_NAME + "DB_HOST");
if (out == null) {
return "localhost";
}
@@ -36,31 +37,32 @@ public class ConfigVariable {
}
public static String getDBPort() {
- String out = System.getenv("ORG_KARIDEO_DB_PORT");
+ String out = System.getenv(BASE_NAME + "DB_PORT");
if (out == null) {
- return "17036";
+ return "3306";
+ //return "17036";
}
return out;
}
public static String getDBLogin() {
- String out = System.getenv("ORG_KARIDEO_DB_LOGIN");
+ String out = System.getenv(BASE_NAME + "DB_USER");
if (out == null) {
- return "root";
+ return "karideo";
}
return out;
}
public static String getDBPassword() {
- String out = System.getenv("MYSQL_ROOT_PASSWORD");
+ String out = System.getenv(BASE_NAME + "DB_PASSWORD");
if (out == null) {
- return "ZERTYSDGFVHSDFGHJYZSDFGSQxfgsqdfgsqdrf4564654";
+ return "karideo_password";
}
return out;
}
public static String getDBName() {
- String out = System.getenv("MYSQL_DATABASE");
+ String out = System.getenv(BASE_NAME + "DB_DATABASE");
if (out == null) {
return "karideo";
}
@@ -68,9 +70,10 @@ public class ConfigVariable {
}
public static String getlocalAddress() {
- String out = System.getenv("ORG_KARIDEO_ADDRESS");
+ String out = System.getenv(BASE_NAME + "ADDRESS");
if (out == null) {
- return "http://0.0.0.0:18080/karideo/api/";
+ return "http://0.0.0.0:80/karideo/api/";
+ //return "http://0.0.0.0:18080/karideo/api/";
}
return out;
}
@@ -78,7 +81,8 @@ public class ConfigVariable {
public static String getSSOAddress() {
String out = System.getenv("SSO_ADDRESS");
if (out == null) {
- return "http://192.168.1.156/karauth/api/";
+ return "http://sso_host/karauth/api/";
+ //return "http://192.168.1.156/karauth/api/";
}
return out;
}
diff --git a/back/src/org/kar/karideo/util/JWTWrapper.java b/back/src/org/kar/karideo/util/JWTWrapper.java
index 6a5a6ca..d26881c 100644
--- a/back/src/org/kar/karideo/util/JWTWrapper.java
+++ b/back/src/org/kar/karideo/util/JWTWrapper.java
@@ -59,11 +59,11 @@ public class JWTWrapper {
}
in.close();
// print result
- System.out.println(response.toString());
+ //System.out.println(response.toString());
ObjectMapper mapper = new ObjectMapper();
- ;
PublicKey values = mapper.readValue(response.toString(), PublicKey.class);
rsaPublicJWK = RSAKey.parse(values.key);
+ return;
}
System.out.println("GET JWT validator token not worked");
}
diff --git a/front/package.json b/front/package.json
index 72137ff..5b734b0 100644
--- a/front/package.json
+++ b/front/package.json
@@ -5,7 +5,7 @@
"scripts": {
"all": "npm run build && npm run test",
"ng": "ng",
- "start": "ng serve --watch",
+ "start": "ng serve --watch --port 4202",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
diff --git a/front/src/app/component/element-season/element-season.ts b/front/src/app/component/element-season/element-season.ts
index 9977e38..ae96243 100644
--- a/front/src/app/component/element-season/element-season.ts
+++ b/front/src/app/component/element-season/element-season.ts
@@ -18,7 +18,7 @@ export class ElementSeasonComponent implements OnInit {
// input parameters
@Input() element:NodeData;
- numberSeason: number;
+ numberSeason: string;
count: number;
covers: string[];
description: string;
@@ -34,7 +34,7 @@ export class ElementSeasonComponent implements OnInit {
this.covers = undefined;
this.description = undefined;
}
- this.numberSeason = this.element.id;
+ this.numberSeason = this.element.name;
this.description = this.element.description;
this.covers = this.dataService.getCoverListThumbnailUrl(this.element.covers);
let self = this;
diff --git a/front/src/app/scene/video/video.ts b/front/src/app/scene/video/video.ts
index 06a5db2..1ade661 100644
--- a/front/src/app/scene/video/video.ts
+++ b/front/src/app/scene/video/video.ts
@@ -209,7 +209,7 @@ export class VideoScene implements OnInit {
self.generatedName = "????????? TODO: ???????" //response.generatedName;
if(self.dataId !== -1) {
self.videoSource = self.httpService.createRESTCall2({
- api: `data/${ self.dataId}/${self.generatedName}`,
+ api: `data/${self.dataId}/${self.generatedName}`,
addURLToken: true,
});
} else {
diff --git a/front/src/environments/environment.ts b/front/src/environments/environment.ts
index 546a6c0..5cd2b92 100644
--- a/front/src/environments/environment.ts
+++ b/front/src/environments/environment.ts
@@ -3,6 +3,22 @@
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
// The list of which env maps to which file can be found in `.angular-cli.json`.
+const environment_back_prod = {
+ production: false,
+ // URL of development API
+ applName: "karideo",
+ defaultServer: "karideo",
+ server: {
+ karideo: 'http://192.168.1.156/karideo/api',
+ karauth: 'http://192.168.1.156/karauth/api',
+ },
+ ssoSignIn: 'http://192.168.1.156/karso/signin/karideo-dev/',
+ ssoSignUp: 'http://192.168.1.156/karso/signup/karideo-dev/',
+ ssoSignOut: 'http://192.168.1.156/karso/signout/karideo-dev/',
+ frontBaseUrl: '',
+ //apiMode: 'REWRITE'
+};
+
const environment_local = {
production: false,
// URL of development API
@@ -36,5 +52,5 @@ const environment_hybrid = {
};
-export const environment = environment_hybrid;
+export const environment = environment_back_prod;
diff --git a/readme.md b/readme.md
index 42475c4..b480746 100644
--- a/readme.md
+++ b/readme.md
@@ -24,9 +24,7 @@ docker-compose up -d
build the local image:
-docker build -t kangaroo-and-rabbit/karideo .
-
-docker tag kangaroo-and-rabbit/karideo:latest gitea.atria-soft.org/kangaroo-and-rabbit/karideo:latest
+docker build -t gitea.atria-soft.org/kangaroo-and-rabbit/karideo:latest .
docker login gitea.atria-soft.org