Skip to content

Commit c02583e

Browse files
committed
Docker compose file to support full development environment inside project.
1 parent 922e24a commit c02583e

5 files changed

Lines changed: 73 additions & 6 deletions

File tree

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ nb-configuration.xml
3737
*.rej
3838

3939
# Local environment
40-
.env
40+
.env*
4141

4242
# Plugin directory
4343
/.quarkus/cli/plugins/
@@ -46,3 +46,6 @@ nb-configuration.xml
4646

4747
# Web Bundler
4848
node_modules/
49+
50+
# Extra
51+
.postgres_data

docker-compose.yaml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: submit
2+
3+
services:
4+
db:
5+
image: postgres:12.4
6+
expose:
7+
- 5432
8+
ports:
9+
- "5432:5432"
10+
volumes:
11+
- .postgres_data:/var/lib/postgresql/data
12+
environment:
13+
POSTGRES_USER: localdevuser
14+
POSTGRES_PASSWORD: localdevuser
15+
POSTGRES_DB: moresleeplocal
16+
17+
moresleep:
18+
image: ghcr.io/javabin/moresleep:edge
19+
ports:
20+
- "8082:8082"
21+
env_file:
22+
- path: ./.env.moresleep
23+
required: false
24+
environment:
25+
DBHOST: db
26+
links:
27+
- db
28+
29+
submit:
30+
build:
31+
context: .
32+
dockerfile: src/main/docker/Dockerfile.jvm
33+
ports:
34+
- "8080:8080"
35+
env_file:
36+
- path: ./.env
37+
required: false
38+
environment:
39+
- TALKS_LOCATION=${TALKS_LOCATION:-http://moresleep:8082}
40+
links:
41+
- moresleep

src/main/java/no/java/submit/config/TalksConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,17 @@
99
import no.java.submit.service.TalksService;
1010
import org.eclipse.microprofile.config.inject.ConfigProperty;
1111
import org.eclipse.microprofile.rest.client.ext.ClientHeadersFactory;
12+
import org.slf4j.Logger;
13+
import org.slf4j.LoggerFactory;
1214

1315
import java.net.URI;
1416
import java.util.Base64;
1517

1618
@Dependent
1719
public class TalksConfig implements ClientHeadersFactory {
1820

21+
private static final Logger log = LoggerFactory.getLogger(TalksConfig.class);
22+
1923
@ConfigProperty(name = "talks.location", defaultValue = "http://localhost:8082")
2024
URI location;
2125

@@ -28,6 +32,8 @@ public class TalksConfig implements ClientHeadersFactory {
2832
@Produces
2933
@Named("talksService")
3034
public TalksService loadTalksService() {
35+
log.info("Talks location: {}", location);
36+
3137
return QuarkusRestClientBuilder.newBuilder()
3238
.baseUri(location)
3339
.build(TalksService.class);

src/main/java/no/java/submit/controller/TalkController.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import no.java.submit.service.ConferenceService;
1919
import no.java.submit.service.TalksService;
2020
import no.java.submit.service.TimelineService;
21+
import no.java.submit.util.UserHelper;
2122
import org.eclipse.microprofile.config.inject.ConfigProperty;
2223

2324
import java.util.ArrayList;
@@ -73,8 +74,7 @@ public TemplateInstance view(@PathParam("sessionId") String sessionId, @Context
7374
@GET
7475
@Path("new")
7576
public TemplateInstance newSession(@Context SecurityIdentity securityIdentity) {
76-
// if (timelineService.isClosed(((SecurityFilter.MyPrincipal)securityIdentity.getPrincipal()).hasExtension()))
77-
if (timelineService.isClosed(false))
77+
if (timelineService.isClosed(UserHelper.hasExtension(securityIdentity)))
7878
return error
7979
.data("title", "Too late")
8080
.data("message", "It is past deadline for submission of new talks.");
@@ -97,8 +97,7 @@ public TemplateInstance newSession(@Context SecurityIdentity securityIdentity) {
9797
@Path("new")
9898
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
9999
public Object newSessionPost(SessionForm form, @Context SecurityIdentity securityIdentity) {
100-
// if (timelineService.isClosed(((SecurityFilter.MyPrincipal)securityIdentity.getPrincipal()).hasExtension()))
101-
if (timelineService.isClosed(false))
100+
if (timelineService.isClosed(UserHelper.hasExtension(securityIdentity)))
102101
return error
103102
.data("title", "Too late")
104103
.data("message", "It is past deadline for submission of new talks.");
@@ -132,7 +131,7 @@ public Object newSessionPost(SessionForm form, @Context SecurityIdentity securit
132131
public TemplateInstance editSession(@PathParam("sessionId") String sessionId, @Context SecurityIdentity securityIdentity) {
133132
var session = talksService.getSession(securityIdentity.getPrincipal().getName(), sessionId);
134133

135-
if (!conferenceService.current().id.equals( session.conferenceId))
134+
if (!conferenceService.current().id.equals(session.conferenceId))
136135
throw new NotFoundException();
137136

138137
return sessionForm
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package no.java.submit.util;
2+
3+
import io.quarkus.oidc.runtime.OidcJwtCallerPrincipal;
4+
import io.quarkus.security.identity.SecurityIdentity;
5+
6+
public interface UserHelper {
7+
8+
static OidcJwtCallerPrincipal getPrincipal(SecurityIdentity securityIdentity) {
9+
return (OidcJwtCallerPrincipal) securityIdentity.getPrincipal();
10+
}
11+
12+
static boolean hasExtension(SecurityIdentity securityIdentity) {
13+
// TODO
14+
return false;
15+
/* return getPrincipal(securityIdentity).getGroups().stream()
16+
.anyMatch(group -> group.equals("extension")); */
17+
}
18+
}

0 commit comments

Comments
 (0)