Skip to content

Commit

Permalink
fix datasafe-rest + frontend docker container build
Browse files Browse the repository at this point in the history
  • Loading branch information
max402 committed Apr 20, 2024
1 parent 1a64024 commit 550a01b
Show file tree
Hide file tree
Showing 9 changed files with 55 additions and 59 deletions.
2 changes: 1 addition & 1 deletion datasafe-rest-impl/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM openjdk:8-jre-alpine
FROM ibm-semeru-runtimes:open-21-jre

ARG JAR_FILE
ENV JAR_FILE ${JAR_FILE}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
version: '3.3'
services:
datasafe:
build:
args:
JAR_FILE: "datasafe-rest-impl-2.0.2-SNAPSHOT.jar"
# image: adorsys/datasafe
environment:
EXPOSE_API_CREDS: true
DEFAULT_USER: username
DEFAULT_PASSWORD: password
USE_FILESYSTEM: file:///Users/max/Desktop/datasafe
ports:
- 8080:8080
db:
image: mysql:5.7
restart: always
Expand Down
40 changes: 0 additions & 40 deletions datasafe-rest-impl/datasafe-deployment.yaml

This file was deleted.

6 changes: 0 additions & 6 deletions datasafe-rest-impl/datasafe-image.yaml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package de.adorsys.datasafe.rest.impl;

import de.adorsys.datasafe.rest.impl.config.DatasafeProperties;
import de.adorsys.datasafe.rest.impl.security.SecurityProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@EnableConfigurationProperties({DatasafeProperties.class, SecurityProperties.class})
public class DatasafeRestApplication {

public static void main(String[] args) {
System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true");
SpringApplication.run(DatasafeRestApplication.class, args);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
import de.adorsys.datasafe.encrypiton.api.types.encryption.MutableEncryptionConfig;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@ConfigurationProperties(prefix = "datasafe")
@Data
@Configuration
@ConfigurationProperties(prefix = "datasafe")
public class DatasafeProperties {

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package de.adorsys.datasafe.rest.impl.config;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.lang.NonNull;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Slf4j
@Configuration
@RequiredArgsConstructor
public class MvcConfig extends WebMvcConfigurationSupport {

private final DatasafeProperties datasafeProperties;

/**
* Register static resources - frontend UI.
*/
@Override
public void addResourceHandlers(@NonNull ResourceHandlerRegistry registry) {
if (!StringUtils.hasLength(datasafeProperties.getStaticResources())) {
return;
}

log.info("Serving static resources from {} as /static/**", datasafeProperties.getStaticResources());
registry
.addResourceHandler("/static/**")
.addResourceLocations(datasafeProperties.getStaticResources());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ public class InboxController {
public void writeToInbox(@RequestHeader Set<String> users,
@PathVariable String path,
@RequestParam("file") MultipartFile file) {
path = path.replaceAll("^/", "");
Set<UserID> toUsers = users.stream().map(UserID::new).collect(Collectors.toSet());
try (OutputStream os = dataSafeService.inboxService().write(WriteRequest.forDefaultPublic(toUsers, path));
InputStream is = file.getInputStream()) {
Expand All @@ -72,6 +73,7 @@ public void readFromInbox(@RequestHeader String user,
@RequestHeader String password,
@PathVariable String path,
HttpServletResponse response) {
path = path.replaceAll("^/", "");
UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password));
PrivateResource resource = BasePrivateResource.forPrivate(path);
// this is needed for swagger, produces is just a directive:
Expand All @@ -91,6 +93,7 @@ public void readFromInbox(@RequestHeader String user,
public void deleteFromInbox(@RequestHeader String user,
@RequestHeader String password,
@PathVariable String path) {
path = path.replaceAll("^/", "");
UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password));
PrivateResource resource = BasePrivateResource.forPrivate(path);
RemoveRequest<UserIDAuth, PrivateResource> request = RemoveRequest.forPrivate(userIDAuth, resource);
Expand All @@ -105,6 +108,7 @@ public void deleteFromInbox(@RequestHeader String user,
public List<String> listInbox(@RequestHeader String user,
@RequestHeader String password,
@PathVariable(required = false) String path) {
path = path.replaceAll("^/", "");
UserIDAuth userIDAuth = new UserIDAuth(new UserID(user), ReadKeyPasswordHelper.getForString(password));
path = Optional.ofNullable(path)
.map(it -> it.replaceAll("^\\.$", ""))
Expand Down
6 changes: 3 additions & 3 deletions frontend/datasafe-ui/src/env.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
(function (window) {
window.__env = window.__env || {};

window.__env.apiUrl = '${API_URL}';
window.__env.apiUrl = '${API_URL:http://localhost:8080}';
// ideally these are not necessary, but API is protected, so supplying it for docker-local deployment
window.__env.apiUsername = '${API_USERNAME}';
window.__env.apiPassword = '${API_PASSWORD}';
window.__env.apiUsername = '${API_USERNAME:username}';
window.__env.apiPassword = '${API_PASSWORD:password}';

}(this));

0 comments on commit 550a01b

Please sign in to comment.