From dc5471ebde54adbb9a6cd3ea13032a26e46d95f5 Mon Sep 17 00:00:00 2001 From: Maxim Nesen Date: Wed, 28 Feb 2024 11:24:50 +0100 Subject: [PATCH] Examples security validation Signed-off-by: Maxim Nesen --- examples/config/changes/conf/secrets/password | 2 +- .../config/changes/OnChangeExample.java | 4 +- examples/config/sources/conf/secrets/password | 2 +- .../sources/DirectorySourceExample.java | 6 +- examples/dbclient/jdbc/README.md | 2 +- .../jdbc/src/main/resources/application.yaml | 6 +- .../dbclient/jdbc/PokemonServiceMySQLIT.java | 2 +- .../resources/application-mysql-test.yaml | 2 +- examples/dbclient/pokemons/README.md | 2 +- .../pokemons/PokemonServiceMySQLIT.java | 2 +- .../resources/application-mysql-test.yaml | 2 +- .../employee/EmployeeRepositoryImplDB.java | 4 +- .../idcs/src/main/resources/application.yaml | 4 +- .../oidc/src/main/resources/application.yaml | 4 +- .../src/main/resources/application.yaml | 8 +-- .../META-INF/microprofile-config.properties | 6 +- .../tls/src/main/resources/server.p12 | Bin 4133 -> 4202 bytes .../basic-auth-with-static-content/README.md | 10 +-- .../basicauth/BasicExampleBuilderMain.java | 8 +-- .../src/main/resources/application.yaml | 8 +-- .../security/basicauth/BasicExampleTest.java | 26 +++---- .../src/main/resources/application.yaml | 4 +- examples/security/outbound-override/README.md | 8 +-- .../examples/outbound/OverrideService.java | 4 +- .../src/main/resources/backend-service.yaml | 6 +- .../main/resources/client-service-jwt.yaml | 8 +-- .../src/main/resources/client-service.yaml | 8 +-- .../outbound/OutboundOverrideExampleTest.java | 6 +- .../OutboundOverrideJwtExampleTest.java | 6 +- .../programmatic/ProgrammaticSecurity.java | 4 +- .../src/main/resources/application.yaml | 4 +- .../security/webserver-digest-auth/README.md | 10 +-- .../digest/DigestExampleBuilderMain.java | 10 +-- .../src/main/resources/application.yaml | 10 +-- .../security/digest/DigestExampleTest.java | 32 ++++----- .../security/webserver-signatures/README.md | 6 +- .../SignatureExampleBuilderMain.java | 16 ++--- .../src/main/resources/keystore.p12 | Bin 2700 -> 2693 bytes .../src/main/resources/service1.yaml | 14 ++-- .../src/main/resources/service2.yaml | 12 ++-- .../signatures/SignatureExampleTest.java | 4 +- .../src/main/resources/application.yaml | 6 +- .../examples/todos/backend/BackendTests.java | 4 +- .../src/test/resources/test-application.yaml | 4 +- .../src/main/resources/application.yaml | 6 +- .../todos/frontend/TodoServiceTest.java | 4 +- .../src/test/resources/application-test.yaml | 4 +- .../main/resources/full-webclient-config.yaml | 6 +- .../mutual-tls/automatic-store-generator.sh | 66 +++++++++--------- .../webserver/mtls/ClientBuilderMain.java | 4 +- .../webserver/mtls/ServerBuilderMain.java | 4 +- .../src/main/resources/application.yaml | 8 +-- .../mutual-tls/src/main/resources/client.p12 | Bin 4181 -> 4274 bytes .../mutual-tls/src/main/resources/server.p12 | Bin 4133 -> 4218 bytes .../src/main/resources/application.yaml | 4 +- .../helidon/examples/webserver/tls/Main.java | 6 +- .../tls/src/main/resources/application.yaml | 4 +- .../tls/src/main/resources/server.p12 | Bin 4133 -> 4218 bytes 58 files changed, 206 insertions(+), 206 deletions(-) diff --git a/examples/config/changes/conf/secrets/password b/examples/config/changes/conf/secrets/password index 387f307495b..5bbaf875819 100644 --- a/examples/config/changes/conf/secrets/password +++ b/examples/config/changes/conf/secrets/password @@ -1 +1 @@ -^ery$ecretP&ssword \ No newline at end of file +changeit \ No newline at end of file diff --git a/examples/config/changes/src/main/java/io/helidon/examples/config/changes/OnChangeExample.java b/examples/config/changes/src/main/java/io/helidon/examples/config/changes/OnChangeExample.java index 03b303dae5d..c771c4a9aef 100644 --- a/examples/config/changes/src/main/java/io/helidon/examples/config/changes/OnChangeExample.java +++ b/examples/config/changes/src/main/java/io/helidon/examples/config/changes/OnChangeExample.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023 Oracle and/or its affiliates. + * Copyright (c) 2017, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -54,7 +54,7 @@ public void run() { private static void logSecrets(Config secrets) { LOGGER.info("Loaded secrets are u: " + secrets.get("username").asString().get() - + ", p: " + secrets.get("password").asString().get()); + + ", p: " + secrets.get("changeit").asString().get()); } } diff --git a/examples/config/sources/conf/secrets/password b/examples/config/sources/conf/secrets/password index 387f307495b..5bbaf875819 100644 --- a/examples/config/sources/conf/secrets/password +++ b/examples/config/sources/conf/secrets/password @@ -1 +1 @@ -^ery$ecretP&ssword \ No newline at end of file +changeit \ No newline at end of file diff --git a/examples/config/sources/src/main/java/io/helidon/examples/config/sources/DirectorySourceExample.java b/examples/config/sources/src/main/java/io/helidon/examples/config/sources/DirectorySourceExample.java index cd54b0d4fde..d058cf65e2b 100644 --- a/examples/config/sources/src/main/java/io/helidon/examples/config/sources/DirectorySourceExample.java +++ b/examples/config/sources/src/main/java/io/helidon/examples/config/sources/DirectorySourceExample.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2023 Oracle and/or its affiliates. + * Copyright (c) 2017, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,9 +48,9 @@ public static void main(String... args) { System.out.println("Username: " + username); assert username.equals("libor"); - String password = secrets.get("password").asString().get(); + String password = secrets.get("changeit").asString().get(); System.out.println("Password: " + password); - assert password.equals("^ery$ecretP&ssword"); + assert password.equals("changeit"); } } diff --git a/examples/dbclient/jdbc/README.md b/examples/dbclient/jdbc/README.md index d78895e3eeb..638dd6aed5f 100644 --- a/examples/dbclient/jdbc/README.md +++ b/examples/dbclient/jdbc/README.md @@ -31,7 +31,7 @@ Instructions for Oracle can be found here: https://github.com/oracle/docker-imag MySQL can be run as a docker container with the following command: ``` -docker run --rm --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=pokemon -e MYSQL_USER=user -e MYSQL_PASSWORD=password mysql:5.7 +docker run --rm --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=pokemon -e MYSQL_USER=user -e MYSQL_PASSWORD=changeit mysql:5.7 ``` diff --git a/examples/dbclient/jdbc/src/main/resources/application.yaml b/examples/dbclient/jdbc/src/main/resources/application.yaml index 64cbce16324..cb175d49dcc 100644 --- a/examples/dbclient/jdbc/src/main/resources/application.yaml +++ b/examples/dbclient/jdbc/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2023 Oracle and/or its affiliates. +# Copyright (c) 2019, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -38,10 +38,10 @@ db: # MySQL configuration # # docker run --rm --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root \ - # -e MYSQL_DATABASE=pokemon -e MYSQL_USER=user -e MYSQL_PASSWORD=password mysql:5.7 + # -e MYSQL_DATABASE=pokemon -e MYSQL_USER=user -e MYSQL_PASSWORD=changeit mysql:5.7 # url: jdbc:mysql://127.0.0.1:3306/pokemon?useSSL=false # username: user -# password: password +# password: changeit # poolName: mysql # # Oracle configuration diff --git a/examples/dbclient/jdbc/src/test/java/io/helidon/examples/dbclient/jdbc/PokemonServiceMySQLIT.java b/examples/dbclient/jdbc/src/test/java/io/helidon/examples/dbclient/jdbc/PokemonServiceMySQLIT.java index 9326f8461d6..eee51c64b23 100644 --- a/examples/dbclient/jdbc/src/test/java/io/helidon/examples/dbclient/jdbc/PokemonServiceMySQLIT.java +++ b/examples/dbclient/jdbc/src/test/java/io/helidon/examples/dbclient/jdbc/PokemonServiceMySQLIT.java @@ -35,7 +35,7 @@ class PokemonServiceMySQLIT extends AbstractPokemonServiceTest { @Container static MySQLContainer container = new MySQLContainer<>("mysql:8.0.36") .withUsername("user") - .withPassword("password") + .withPassword("changeit") .withNetworkAliases("mysql") .withDatabaseName("pokemon"); diff --git a/examples/dbclient/jdbc/src/test/resources/application-mysql-test.yaml b/examples/dbclient/jdbc/src/test/resources/application-mysql-test.yaml index d271d1a30a4..8bf82887909 100644 --- a/examples/dbclient/jdbc/src/test/resources/application-mysql-test.yaml +++ b/examples/dbclient/jdbc/src/test/resources/application-mysql-test.yaml @@ -25,7 +25,7 @@ db: source: jdbc connection: username: user - password: password + password: changeit poolName: mysql initializationFailTimeout: -1 connectionTimeout: 2000 diff --git a/examples/dbclient/pokemons/README.md b/examples/dbclient/pokemons/README.md index 58564d0f77f..807dc1ae664 100644 --- a/examples/dbclient/pokemons/README.md +++ b/examples/dbclient/pokemons/README.md @@ -67,7 +67,7 @@ For details, see http://www.h2database.com/html/cheatSheet.html MySQL: ``` docker run --rm --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root \ - -e MYSQL_DATABASE=pokemon -e MYSQL_USER=user -e MYSQL_PASSWORD=password mysql:5.7 + -e MYSQL_DATABASE=pokemon -e MYSQL_USER=user -e MYSQL_PASSWORD=changeit mysql:5.7 ``` diff --git a/examples/dbclient/pokemons/src/test/java/io/helidon/examples/dbclient/pokemons/PokemonServiceMySQLIT.java b/examples/dbclient/pokemons/src/test/java/io/helidon/examples/dbclient/pokemons/PokemonServiceMySQLIT.java index fa79469b3d7..36d03ddc02e 100644 --- a/examples/dbclient/pokemons/src/test/java/io/helidon/examples/dbclient/pokemons/PokemonServiceMySQLIT.java +++ b/examples/dbclient/pokemons/src/test/java/io/helidon/examples/dbclient/pokemons/PokemonServiceMySQLIT.java @@ -34,7 +34,7 @@ public class PokemonServiceMySQLIT extends AbstractPokemonServiceTest { @Container static MySQLContainer container = new MySQLContainer<>("mysql:8.0.36") .withUsername("user") - .withPassword("password") + .withPassword("changeit") .withNetworkAliases("mysql") .withDatabaseName("pokemon"); diff --git a/examples/dbclient/pokemons/src/test/resources/application-mysql-test.yaml b/examples/dbclient/pokemons/src/test/resources/application-mysql-test.yaml index 0e67870a821..58e56aee301 100644 --- a/examples/dbclient/pokemons/src/test/resources/application-mysql-test.yaml +++ b/examples/dbclient/pokemons/src/test/resources/application-mysql-test.yaml @@ -26,7 +26,7 @@ db: source: jdbc connection: username: user - password: password + password: changeit poolName: "mysql" initializationFailTimeout: -1 connectionTimeout: 2000 diff --git a/examples/employee-app/src/main/java/io/helidon/examples/employee/EmployeeRepositoryImplDB.java b/examples/employee-app/src/main/java/io/helidon/examples/employee/EmployeeRepositoryImplDB.java index 5ece4d33f98..e95694c0bca 100644 --- a/examples/employee-app/src/main/java/io/helidon/examples/employee/EmployeeRepositoryImplDB.java +++ b/examples/employee-app/src/main/java/io/helidon/examples/employee/EmployeeRepositoryImplDB.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2023 Oracle and/or its affiliates. + * Copyright (c) 2019, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -43,7 +43,7 @@ final class EmployeeRepositoryImplDB implements EmployeeRepository { String driver = "oracle.jdbc.driver.OracleDriver"; String dbUserName = config.get("app.user").asString().orElse("sys as SYSDBA"); - String dbUserPassword = config.get("app.password").asString().orElse("password"); + String dbUserPassword = config.get("app.password").asString().orElse("changeit"); String dbHostURL = config.get("app.hosturl").asString().orElse("localhost:1521/xe"); try { diff --git a/examples/microprofile/idcs/src/main/resources/application.yaml b/examples/microprofile/idcs/src/main/resources/application.yaml index ccf068a70c6..44f5084842f 100644 --- a/examples/microprofile/idcs/src/main/resources/application.yaml +++ b/examples/microprofile/idcs/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, 2023 Oracle and/or its affiliates. +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ security: # This is a nice way to be able to override this with local properties or env-vars idcs-uri: "https://tenant-id.identity.oracle.com" idcs-client-id: "client-id" - idcs-client-secret: "client-secret" + idcs-client-secret: "changeit" # Used as a base for redirects back to us frontend-uri: "http://localhost:7987" proxy-host: "if you need proxy" diff --git a/examples/microprofile/oidc/src/main/resources/application.yaml b/examples/microprofile/oidc/src/main/resources/application.yaml index 44773fcfe4c..c3def999ac2 100644 --- a/examples/microprofile/oidc/src/main/resources/application.yaml +++ b/examples/microprofile/oidc/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2022 Oracle and/or its affiliates. +# Copyright (c) 2019, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -23,7 +23,7 @@ security: oidc-identity-uri: "https://tenant.some-server.com/oauth2/default" # when you create a new client in identity server configuration, you should get a client id and a client secret oidc-client-id: "some client id" - oidc-client-secret: "some client secret" + oidc-client-secret: "changeit" # issuer of the tokens - identity server specific (maybe even configurable) oidc-issuer: "https://tenant.some-server.com/oauth2/default" # audience of the tokens - identity server specific (usually configurable) diff --git a/examples/microprofile/security/src/main/resources/application.yaml b/examples/microprofile/security/src/main/resources/application.yaml index bdbb4f58891..2ea4cce613c 100644 --- a/examples/microprofile/security/src/main/resources/application.yaml +++ b/examples/microprofile/security/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, 2020 Oracle and/or its affiliates. +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -27,13 +27,13 @@ security: realm: "helidon" users: - login: "jack" - password: "password" + password: "changeit" roles: ["user", "admin"] - login: "jill" - password: "password" + password: "changeit" roles: ["user"] - login: "john" - password: "password" + password: "changeit" web-server: paths: - path: "/static-cp[/{*}]" diff --git a/examples/microprofile/tls/src/main/resources/META-INF/microprofile-config.properties b/examples/microprofile/tls/src/main/resources/META-INF/microprofile-config.properties index eb65e6a917b..2c3978a78bc 100644 --- a/examples/microprofile/tls/src/main/resources/META-INF/microprofile-config.properties +++ b/examples/microprofile/tls/src/main/resources/META-INF/microprofile-config.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,9 +20,9 @@ server.host=0.0.0.0 #Truststore setup server.tls.trust.keystore.resource.resource-path=server.p12 -server.tls.trust.keystore.passphrase=password +server.tls.trust.keystore.passphrase=changeit server.tls.trust.keystore.trust-store=true #Keystore with private key and server certificate server.tls.private-key.keystore.resource.resource-path=server.p12 -server.tls.private-key.keystore.passphrase=password +server.tls.private-key.keystore.passphrase=changeit diff --git a/examples/microprofile/tls/src/main/resources/server.p12 b/examples/microprofile/tls/src/main/resources/server.p12 index ff8e4ddfc7fc9907376df9a9fb5d453a466c6196..d2599833af58546bbd5fb7633ef73d46a1d8ccbd 100644 GIT binary patch delta 4145 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 diff --git a/examples/security/basic-auth-with-static-content/README.md b/examples/security/basic-auth-with-static-content/README.md index 3c5102cb598..051ca33d842 100644 --- a/examples/security/basic-auth-with-static-content/README.md +++ b/examples/security/basic-auth-with-static-content/README.md @@ -23,9 +23,9 @@ Try the application: The application starts at the `8080` port ```shell curl http://localhost:8080/public -curl -u "jill:password" http://localhost:8080/noRoles -curl -u "john:password" http://localhost:8080/user -curl -u "jack:password" http://localhost:8080/admin -curl -v -u "john:password" http://localhost:8080/deny -curl -u "jack:password" http://localhost:8080/noAuthn +curl -u "jill:changeit" http://localhost:8080/noRoles +curl -u "john:changeit" http://localhost:8080/user +curl -u "jack:changeit" http://localhost:8080/admin +curl -v -u "john:changeit" http://localhost:8080/deny +curl -u "jack:changeit" http://localhost:8080/noAuthn ``` diff --git a/examples/security/basic-auth-with-static-content/src/main/java/io/helidon/examples/security/basicauth/BasicExampleBuilderMain.java b/examples/security/basic-auth-with-static-content/src/main/java/io/helidon/examples/security/basicauth/BasicExampleBuilderMain.java index eb1d515d6e0..b3577f3a76f 100644 --- a/examples/security/basic-auth-with-static-content/src/main/java/io/helidon/examples/security/basicauth/BasicExampleBuilderMain.java +++ b/examples/security/basic-auth-with-static-content/src/main/java/io/helidon/examples/security/basicauth/BasicExampleBuilderMain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023 Oracle and/or its affiliates. + * Copyright (c) 2020, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,9 +42,9 @@ public final class BasicExampleBuilderMain { private static final Map USERS = new HashMap<>(); static { - USERS.put("jack", new MyUser("jack", "password".toCharArray(), Set.of("user", "admin"))); - USERS.put("jill", new MyUser("jill", "password".toCharArray(), Set.of("user"))); - USERS.put("john", new MyUser("john", "password".toCharArray(), Set.of())); + USERS.put("jack", new MyUser("jack", "changeit".toCharArray(), Set.of("user", "admin"))); + USERS.put("jill", new MyUser("jill", "changeit".toCharArray(), Set.of("user"))); + USERS.put("john", new MyUser("john", "changeit".toCharArray(), Set.of())); } private BasicExampleBuilderMain() { diff --git a/examples/security/basic-auth-with-static-content/src/main/resources/application.yaml b/examples/security/basic-auth-with-static-content/src/main/resources/application.yaml index a0140402389..da4d6065f24 100644 --- a/examples/security/basic-auth-with-static-content/src/main/resources/application.yaml +++ b/examples/security/basic-auth-with-static-content/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2020, 2023 Oracle and/or its affiliates. +# Copyright (c) 2020, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -53,11 +53,11 @@ security: realm: "helidon" users: - login: "jack" - password: "${CLEAR=password}" + password: "${CLEAR=changeit}" roles: [ "user", "admin" ] - login: "jill" - password: "${CLEAR=password}" + password: "${CLEAR=changeit}" roles: [ "user" ] - login: "john" - password: "${CLEAR=password}" + password: "${CLEAR=changeit}" roles: [ ] diff --git a/examples/security/basic-auth-with-static-content/src/test/java/io/helidon/examples/security/basicauth/BasicExampleTest.java b/examples/security/basic-auth-with-static-content/src/test/java/io/helidon/examples/security/basicauth/BasicExampleTest.java index e69f466bcd8..34874e6ab2c 100644 --- a/examples/security/basic-auth-with-static-content/src/test/java/io/helidon/examples/security/basicauth/BasicExampleTest.java +++ b/examples/security/basic-auth-with-static-content/src/test/java/io/helidon/examples/security/basicauth/BasicExampleTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023 Oracle and/or its affiliates. + * Copyright (c) 2020, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -75,9 +75,9 @@ public void testNoRoles() { testNotAuthorized(uri); //Must be accessible with authentication - to everybody - testProtected(uri, "jack", "password", Set.of("admin", "user"), Set.of()); - testProtected(uri, "jill", "password", Set.of("user"), Set.of("admin")); - testProtected(uri, "john", "password", Set.of(), Set.of("admin", "user")); + testProtected(uri, "jack", "changeit", Set.of("admin", "user"), Set.of()); + testProtected(uri, "jill", "changeit", Set.of("user"), Set.of("admin")); + testProtected(uri, "john", "changeit", Set.of(), Set.of("admin", "user")); } @Test @@ -87,9 +87,9 @@ public void testUserRole() { testNotAuthorized(uri); //Jack and Jill allowed (user role) - testProtected(uri, "jack", "password", Set.of("admin", "user"), Set.of()); - testProtected(uri, "jill", "password", Set.of("user"), Set.of("admin")); - testProtectedDenied(uri, "john", "password"); + testProtected(uri, "jack", "changeit", Set.of("admin", "user"), Set.of()); + testProtected(uri, "jill", "changeit", Set.of("user"), Set.of("admin")); + testProtectedDenied(uri, "john", "changeit"); } @Test @@ -99,9 +99,9 @@ public void testAdminRole() { testNotAuthorized(uri); //Only jack is allowed - admin role... - testProtected(uri, "jack", "password", Set.of("admin", "user"), Set.of()); - testProtectedDenied(uri, "jill", "password"); - testProtectedDenied(uri, "john", "password"); + testProtected(uri, "jack", "changeit", Set.of("admin", "user"), Set.of()); + testProtectedDenied(uri, "jill", "changeit"); + testProtectedDenied(uri, "john", "changeit"); } @Test @@ -111,9 +111,9 @@ public void testDenyRole() { testNotAuthorized(uri); // nobody has the correct role - testProtectedDenied(uri, "jack", "password"); - testProtectedDenied(uri, "jill", "password"); - testProtectedDenied(uri, "john", "password"); + testProtectedDenied(uri, "jack", "changeit"); + testProtectedDenied(uri, "jill", "changeit"); + testProtectedDenied(uri, "john", "changeit"); } @Test diff --git a/examples/security/idcs-login/src/main/resources/application.yaml b/examples/security/idcs-login/src/main/resources/application.yaml index 892436973c5..3143f33f23b 100644 --- a/examples/security/idcs-login/src/main/resources/application.yaml +++ b/examples/security/idcs-login/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, 2023 Oracle and/or its affiliates. +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -33,7 +33,7 @@ security: # This is a nice way to be able to override this with local properties or env-vars idcs-uri: "https://your-tenant-id.identity.oracle.com" idcs-client-id: "your-client-id" - idcs-client-secret: "${CLEAR=your-client-secret}" + idcs-client-secret: "${CLEAR=changeit}" proxy-host: "" providers: - abac: diff --git a/examples/security/outbound-override/README.md b/examples/security/outbound-override/README.md index 797916cf2d8..c4692698b77 100644 --- a/examples/security/outbound-override/README.md +++ b/examples/security/outbound-override/README.md @@ -14,8 +14,8 @@ java -jar target/helidon-examples-security-outbound-override.jar Try the endpoints (port is random, shall be replaced accordingly): ```shell export PORT=35973 -curl -u "jack:password" http://localhost:${PORT}/propagate -curl -u "jack:password" http://localhost:${PORT}/override -curl -u "jill:anotherPassword" http://localhost:${PORT}/propagate -curl -u "jill:anotherPassword" http://localhost:${PORT}/override +curl -u "jack:changeit" http://localhost:${PORT}/propagate +curl -u "jack:changeit" http://localhost:${PORT}/override +curl -u "jill:changeit" http://localhost:${PORT}/propagate +curl -u "jill:changeit" http://localhost:${PORT}/override ``` diff --git a/examples/security/outbound-override/src/main/java/io/helidon/security/examples/outbound/OverrideService.java b/examples/security/outbound-override/src/main/java/io/helidon/security/examples/outbound/OverrideService.java index cf811295c91..94acb5daa6d 100644 --- a/examples/security/outbound-override/src/main/java/io/helidon/security/examples/outbound/OverrideService.java +++ b/examples/security/outbound-override/src/main/java/io/helidon/security/examples/outbound/OverrideService.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Oracle and/or its affiliates. + * Copyright (c) 2023, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ private void override(ServerRequest req, ServerResponse res) { String result = client.get("http://localhost:" + server.port("backend") + "/hello") .property(EndpointConfig.PROPERTY_OUTBOUND_ID, "jill") - .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "anotherPassword") + .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "changeit") .requestEntity(String.class); res.send("You are: " + context.userName() + ", backend service returned: " + result + "\n"); diff --git a/examples/security/outbound-override/src/main/resources/backend-service.yaml b/examples/security/outbound-override/src/main/resources/backend-service.yaml index cd87aee5fdc..e40cfd46a69 100644 --- a/examples/security/outbound-override/src/main/resources/backend-service.yaml +++ b/examples/security/outbound-override/src/main/resources/backend-service.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, 2023 Oracle and/or its affiliates. +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,10 +19,10 @@ security: - http-basic-auth: users: - login: "jack" - password: "password" + password: "changeit" roles: ["user", "admin"] - login: "jill" - password: "anotherPassword" + password: "changeit" roles: ["user"] web-server: defaults: diff --git a/examples/security/outbound-override/src/main/resources/client-service-jwt.yaml b/examples/security/outbound-override/src/main/resources/client-service-jwt.yaml index 9661c20a1b4..c4d11dba67a 100644 --- a/examples/security/outbound-override/src/main/resources/client-service-jwt.yaml +++ b/examples/security/outbound-override/src/main/resources/client-service-jwt.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, 2020 Oracle and/or its affiliates. +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -25,13 +25,13 @@ security: - http-basic-auth: users: - login: "john" - password: "johnnyPassword" + password: "changeit" roles: ["admin"] - login: "jack" - password: "password" + password: "changeit" roles: ["user", "admin"] - login: "jill" - password: "anotherPassword" + password: "changeit" roles: ["user"] - jwt: allow-impersonation: true diff --git a/examples/security/outbound-override/src/main/resources/client-service.yaml b/examples/security/outbound-override/src/main/resources/client-service.yaml index 94b3924f9fb..0219ab30eeb 100644 --- a/examples/security/outbound-override/src/main/resources/client-service.yaml +++ b/examples/security/outbound-override/src/main/resources/client-service.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, 2020 Oracle and/or its affiliates. +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,13 +19,13 @@ security: - http-basic-auth: users: - login: "john" - password: "johnnyPassword" + password: "changeit" roles: ["admin"] - login: "jack" - password: "password" + password: "changeit" roles: ["user", "admin"] - login: "jill" - password: "anotherPassword" + password: "changeit" roles: ["user"] outbound: - name: "propagate-all" diff --git a/examples/security/outbound-override/src/test/java/io/helidon/security/examples/outbound/OutboundOverrideExampleTest.java b/examples/security/outbound-override/src/test/java/io/helidon/security/examples/outbound/OutboundOverrideExampleTest.java index d8b1e1c5956..fabb17b179b 100644 --- a/examples/security/outbound-override/src/test/java/io/helidon/security/examples/outbound/OutboundOverrideExampleTest.java +++ b/examples/security/outbound-override/src/test/java/io/helidon/security/examples/outbound/OutboundOverrideExampleTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023 Oracle and/or its affiliates. + * Copyright (c) 2020, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -61,7 +61,7 @@ public void testOverrideExample() { String value = client.get() .path("/override") .property(EndpointConfig.PROPERTY_OUTBOUND_ID, "jack") - .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "password") + .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "changeit") .requestEntity(String.class); assertThat(value, is("You are: jack, backend service returned: jill\n")); @@ -72,7 +72,7 @@ public void testPropagateExample() { String value = client.get() .path("/propagate") .property(EndpointConfig.PROPERTY_OUTBOUND_ID, "jack") - .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "password") + .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "changeit") .requestEntity(String.class); assertThat(value, is("You are: jack, backend service returned: jack\n")); diff --git a/examples/security/outbound-override/src/test/java/io/helidon/security/examples/outbound/OutboundOverrideJwtExampleTest.java b/examples/security/outbound-override/src/test/java/io/helidon/security/examples/outbound/OutboundOverrideJwtExampleTest.java index 9db9742c00d..d99934259de 100644 --- a/examples/security/outbound-override/src/test/java/io/helidon/security/examples/outbound/OutboundOverrideJwtExampleTest.java +++ b/examples/security/outbound-override/src/test/java/io/helidon/security/examples/outbound/OutboundOverrideJwtExampleTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023 Oracle and/or its affiliates. + * Copyright (c) 2021, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ public void testOverrideExample() { try (Http1ClientResponse response = client.get() .path("/override") .property(EndpointConfig.PROPERTY_OUTBOUND_ID, "jack") - .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "password") + .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "changeit") .request()) { assertThat(response.status().code(), is(200)); @@ -77,7 +77,7 @@ public void testPropagateExample() { try (Http1ClientResponse response = client.get() .path("/propagate") .property(EndpointConfig.PROPERTY_OUTBOUND_ID, "jack") - .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "password") + .property(EndpointConfig.PROPERTY_OUTBOUND_SECRET, "changeit") .request()) { assertThat(response.status().code(), is(200)); diff --git a/examples/security/programmatic/src/main/java/io/helidon/examples/security/programmatic/ProgrammaticSecurity.java b/examples/security/programmatic/src/main/java/io/helidon/examples/security/programmatic/ProgrammaticSecurity.java index fac90c64987..2fb76665dc3 100644 --- a/examples/security/programmatic/src/main/java/io/helidon/examples/security/programmatic/ProgrammaticSecurity.java +++ b/examples/security/programmatic/src/main/java/io/helidon/examples/security/programmatic/ProgrammaticSecurity.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023 Oracle and/or its affiliates. + * Copyright (c) 2018, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -135,7 +135,7 @@ private Subject login() { SecurityContext securityContext = CONTEXT.get(); securityContext.env(securityContext.env().derive() .path("/some/path") - .header("Authorization", buildBasic("aUser", "aPassword"))); + .header("Authorization", buildBasic("aUser", "changeit"))); AuthenticationResponse response = securityContext.atnClientBuilder().buildAndGet(); diff --git a/examples/security/vaults/src/main/resources/application.yaml b/examples/security/vaults/src/main/resources/application.yaml index 63e95c48c80..30fb258b198 100644 --- a/examples/security/vaults/src/main/resources/application.yaml +++ b/examples/security/vaults/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2021, 2022 Oracle and/or its affiliates. +# Copyright (c) 2021, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -51,7 +51,7 @@ security: config: path: "app/secret" key: "username" -# - name: "password" +# - name: "changeit" # provider: "oci-vault" # config: # ocid: "${oci.properties.secret-ocid}" diff --git a/examples/security/webserver-digest-auth/README.md b/examples/security/webserver-digest-auth/README.md index 4814ae232f8..bc9628e8749 100644 --- a/examples/security/webserver-digest-auth/README.md +++ b/examples/security/webserver-digest-auth/README.md @@ -23,9 +23,9 @@ The application starts on a random port, the following assumes it is `56551` ```shell export PORT=38529 curl http://localhost:${PORT}/public -curl --digest -u "jill:password" http://localhost:${PORT}/noRoles -curl --digest -u "john:password" http://localhost:${PORT}/user -curl --digest -u "jack:password" http://localhost:${PORT}/admin -curl -v --digest -u "john:password" http://localhost:${PORT}/deny -curl --digest -u "jack:password" http://localhost:${PORT}/noAuthn +curl --digest -u "jill:changeit" http://localhost:${PORT}/noRoles +curl --digest -u "john:changeit" http://localhost:${PORT}/user +curl --digest -u "jack:changeit" http://localhost:${PORT}/admin +curl -v --digest -u "john:changeit" http://localhost:${PORT}/deny +curl --digest -u "jack:changeit" http://localhost:${PORT}/noAuthn ``` diff --git a/examples/security/webserver-digest-auth/src/main/java/io/helidon/examples/security/digest/DigestExampleBuilderMain.java b/examples/security/webserver-digest-auth/src/main/java/io/helidon/examples/security/digest/DigestExampleBuilderMain.java index f12099b3b03..72a34dbefcf 100644 --- a/examples/security/webserver-digest-auth/src/main/java/io/helidon/examples/security/digest/DigestExampleBuilderMain.java +++ b/examples/security/webserver-digest-auth/src/main/java/io/helidon/examples/security/digest/DigestExampleBuilderMain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023 Oracle and/or its affiliates. + * Copyright (c) 2018, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,9 +48,9 @@ public final class DigestExampleBuilderMain { private static final char[] HEX_ARRAY = "0123456789abcdef".toCharArray(); static { - USERS.put("jack", new MyUser("jack", "password".toCharArray(), Set.of("user", "admin"))); - USERS.put("jill", new MyUser("jill", "password".toCharArray(), Set.of("user"))); - USERS.put("john", new MyUser("john", "password".toCharArray(), Set.of())); + USERS.put("jack", new MyUser("jack", "changeit".toCharArray(), Set.of("user", "admin"))); + USERS.put("jill", new MyUser("jill", "changeit".toCharArray(), Set.of("user"))); + USERS.put("john", new MyUser("john", "changeit".toCharArray(), Set.of())); } private DigestExampleBuilderMain() { @@ -127,7 +127,7 @@ private static Security security() { .addAuthenticationProvider( HttpDigestAuthProvider.builder() .realm("mic") - .digestServerSecret("aPassword".toCharArray()) + .digestServerSecret("changeit".toCharArray()) .userStore(buildUserStore()), "digest-auth") .build(); diff --git a/examples/security/webserver-digest-auth/src/main/resources/application.yaml b/examples/security/webserver-digest-auth/src/main/resources/application.yaml index 6a6d762e1f4..cc933bea773 100644 --- a/examples/security/webserver-digest-auth/src/main/resources/application.yaml +++ b/examples/security/webserver-digest-auth/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2016, 2023 Oracle and/or its affiliates. +# Copyright (c) 2016, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -47,14 +47,14 @@ security: providers: - http-digest-auth: realm: "mic" - server-secret: "aPassword" + server-secret: "changeit" users: - login: "jack" - password: "${CLEAR=password}" + password: "${CLEAR=changeit}" roles: ["user", "admin"] - login: "jill" - password: "${CLEAR=password}" + password: "${CLEAR=changeit}" roles: ["user"] - login: "john" - password: "${CLEAR=password}" + password: "${CLEAR=changeit}" roles: [] diff --git a/examples/security/webserver-digest-auth/src/test/java/io/helidon/examples/security/digest/DigestExampleTest.java b/examples/security/webserver-digest-auth/src/test/java/io/helidon/examples/security/digest/DigestExampleTest.java index f065afb64fa..4c1aeb3fc69 100644 --- a/examples/security/webserver-digest-auth/src/test/java/io/helidon/examples/security/digest/DigestExampleTest.java +++ b/examples/security/webserver-digest-auth/src/test/java/io/helidon/examples/security/digest/DigestExampleTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023 Oracle and/or its affiliates. + * Copyright (c) 2018, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -67,9 +67,9 @@ public void testNoRoles() { testNotAuthorized(uri); //Must be accessible with authentication - to everybody - testProtected(uri, "jack", "password", Set.of("admin", "user"), Set.of()); - testProtected(uri, "jill", "password", Set.of("user"), Set.of("admin")); - testProtected(uri, "john", "password", Set.of(), Set.of("admin", "user")); + testProtected(uri, "jack", "changeit", Set.of("admin", "user"), Set.of()); + testProtected(uri, "jill", "changeit", Set.of("user"), Set.of("admin")); + testProtected(uri, "john", "changeit", Set.of(), Set.of("admin", "user")); } @Test @@ -79,9 +79,9 @@ public void testUserRole() { testNotAuthorized(uri); //Jack and Jill allowed (user role) - testProtected(uri, "jack", "password", Set.of("admin", "user"), Set.of()); - testProtected(uri, "jill", "password", Set.of("user"), Set.of("admin")); - testProtectedDenied(uri, "john", "password"); + testProtected(uri, "jack", "changeit", Set.of("admin", "user"), Set.of()); + testProtected(uri, "jill", "changeit", Set.of("user"), Set.of("admin")); + testProtectedDenied(uri, "john", "changeit"); } @Test @@ -91,9 +91,9 @@ public void testAdminRole() { testNotAuthorized(uri); //Only jack is allowed - admin role... - testProtected(uri, "jack", "password", Set.of("admin", "user"), Set.of()); - testProtectedDenied(uri, "jill", "password"); - testProtectedDenied(uri, "john", "password"); + testProtected(uri, "jack", "changeit", Set.of("admin", "user"), Set.of()); + testProtectedDenied(uri, "jill", "changeit"); + testProtectedDenied(uri, "john", "changeit"); } @Test @@ -103,9 +103,9 @@ public void testDenyRole() { testNotAuthorized(uri); // nobody has the correct role - testProtectedDenied(uri, "jack", "password"); - testProtectedDenied(uri, "jill", "password"); - testProtectedDenied(uri, "john", "password"); + testProtectedDenied(uri, "jack", "changeit"); + testProtectedDenied(uri, "jill", "changeit"); + testProtectedDenied(uri, "john", "changeit"); } @Test @@ -117,9 +117,9 @@ public void getNoAuthn() { assertThat(response.status().code(), is(403)); // doesn't matter, we are never challenged - testProtectedDenied(uri, "jack", "password"); - testProtectedDenied(uri, "jill", "password"); - testProtectedDenied(uri, "john", "password"); + testProtectedDenied(uri, "jack", "changeit"); + testProtectedDenied(uri, "jill", "changeit"); + testProtectedDenied(uri, "john", "changeit"); } } diff --git a/examples/security/webserver-signatures/README.md b/examples/security/webserver-signatures/README.md index ad8fac058fb..3fbd0d5dbb1 100644 --- a/examples/security/webserver-signatures/README.md +++ b/examples/security/webserver-signatures/README.md @@ -24,7 +24,7 @@ java -jar target/helidon-examples-security-webserver-signatures.jar Try the endpoints (port is random, shall be replaced accordingly): ```shell export PORT=34941 -curl -u "jack:password" http://localhost:${PORT}/service1 -curl -u "jill:password" http://localhost:${PORT}/service1-rsa -curl -v -u "john:password" http://localhost:${PORT}/service1 +curl -u "jack:changeit" http://localhost:${PORT}/service1 +curl -u "jill:changeit" http://localhost:${PORT}/service1-rsa +curl -v -u "john:changeit" http://localhost:${PORT}/service1 ``` diff --git a/examples/security/webserver-signatures/src/main/java/io/helidon/examples/security/signatures/SignatureExampleBuilderMain.java b/examples/security/webserver-signatures/src/main/java/io/helidon/examples/security/signatures/SignatureExampleBuilderMain.java index b139fd4348f..5b9adcbf789 100644 --- a/examples/security/webserver-signatures/src/main/java/io/helidon/examples/security/signatures/SignatureExampleBuilderMain.java +++ b/examples/security/webserver-signatures/src/main/java/io/helidon/examples/security/signatures/SignatureExampleBuilderMain.java @@ -1,6 +1,6 @@ /* - * Copyright (c) 2018, 2023 Oracle and/or its affiliates. + * Copyright (c) 2018, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,9 +52,9 @@ public class SignatureExampleBuilderMain { private static final Map USERS = new HashMap<>(); static { - addUser("jack", "password", List.of("user", "admin")); - addUser("jill", "password", List.of("user")); - addUser("john", "password", List.of()); + addUser("jack", "changeit", List.of("user", "admin")); + addUser("jill", "changeit", List.of("user")); + addUser("john", "changeit", List.of()); } private SignatureExampleBuilderMain() { @@ -159,7 +159,7 @@ private static Security security2() { .addInbound(InboundClientDefinition .builder("service1-hmac") .principalName("Service1 - HMAC signature") - .hmacSecret("somePasswordForHmacShouldBeEncrypted") + .hmacSecret("changeit") .build()) .addInbound(InboundClientDefinition .builder("service1-rsa") @@ -167,7 +167,7 @@ private static Security security2() { .publicKeyConfig(Keys.builder() .keystore(k -> k .keystore(Resource.create("keystore.p12")) - .passphrase("password") + .passphrase("changeit") .certAlias("service_cert") .build()) .build()) @@ -209,7 +209,7 @@ private static OutboundTarget rsaTarget() { .privateKeyConfig(Keys.builder() .keystore(k -> k .keystore(Resource.create("keystore.p12")) - .passphrase("password") + .passphrase("changeit") .keyAlias("myPrivateKey") .build()) .build()) @@ -225,7 +225,7 @@ private static OutboundTarget hmacTarget() { OutboundTargetDefinition.class, OutboundTargetDefinition .builder("service1-hmac") - .hmacSecret("somePasswordForHmacShouldBeEncrypted") + .hmacSecret("changeit") .build()) .build(); } diff --git a/examples/security/webserver-signatures/src/main/resources/keystore.p12 b/examples/security/webserver-signatures/src/main/resources/keystore.p12 index ff2c52d6694ae5c23a1b15d971935a9fa33ba1d4..96df596265a4799186924602afa1d101e5e80baa 100644 GIT binary patch literal 2693 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 delta 2665 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 expectedRoles, Set invalidRoles, String service) { try (Http1ClientResponse response = client.get(uri) .property(PROPERTY_OUTBOUND_ID, "jack") - .property(PROPERTY_OUTBOUND_SECRET, "password") + .property(PROPERTY_OUTBOUND_SECRET, "changeit") .request()) { assertThat(response.status().code(), is(200)); diff --git a/examples/todo-app/backend/src/main/resources/application.yaml b/examples/todo-app/backend/src/main/resources/application.yaml index cebe7db0a75..8727766ddce 100644 --- a/examples/todo-app/backend/src/main/resources/application.yaml +++ b/examples/todo-app/backend/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, 2023 Oracle and/or its affiliates. +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -31,7 +31,7 @@ cassandra: security: config: require-encryption: false - aes.insecure-passphrase: "jungle" + aes.insecure-passphrase: "changeit" provider-policy: type: "COMPOSITE" authentication: @@ -45,4 +45,4 @@ security: inbound.keys: - key-id: "frontend" principal-name: "Frontend Service" - hmac.secret: "${CLEAR=frontend2backend}" + hmac.secret: "${CLEAR=changeit}" diff --git a/examples/todo-app/backend/src/test/java/io/helidon/examples/todos/backend/BackendTests.java b/examples/todo-app/backend/src/test/java/io/helidon/examples/todos/backend/BackendTests.java index a40cc1fb6eb..e5f0316b75a 100644 --- a/examples/todo-app/backend/src/test/java/io/helidon/examples/todos/backend/BackendTests.java +++ b/examples/todo-app/backend/src/test/java/io/helidon/examples/todos/backend/BackendTests.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023 Oracle and/or its affiliates. + * Copyright (c) 2021, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -107,7 +107,7 @@ private static Properties initCassandra() { @Test void testTodoScenario() { - String basicAuth = "Basic " + Base64.getEncoder().encodeToString("john:password".getBytes()); + String basicAuth = "Basic " + Base64.getEncoder().encodeToString("john:changeit".getBytes()); JsonObject todo = Json.createObjectBuilder() .add("title", "todo title") .build(); diff --git a/examples/todo-app/backend/src/test/resources/test-application.yaml b/examples/todo-app/backend/src/test/resources/test-application.yaml index aa071626dd7..299eed138e7 100644 --- a/examples/todo-app/backend/src/test/resources/test-application.yaml +++ b/examples/todo-app/backend/src/test/resources/test-application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2021 Oracle and/or its affiliates. +# Copyright (c) 2021, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -37,4 +37,4 @@ security: realm: "helidon" users: - login: "john" - password: "password" + password: "changeit" diff --git a/examples/todo-app/frontend/src/main/resources/application.yaml b/examples/todo-app/frontend/src/main/resources/application.yaml index d546b220f37..a8cbb7be070 100644 --- a/examples/todo-app/frontend/src/main/resources/application.yaml +++ b/examples/todo-app/frontend/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, 2023 Oracle and/or its affiliates. +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -39,7 +39,7 @@ services: security: config: require-encryption: false - aes.insecure-passphrase: "jungle" + aes.insecure-passphrase: "changeit" provider-policy: type: "COMPOSITE" authentication: @@ -60,4 +60,4 @@ security: hosts: [ "localhost" ] signature: key-id: "frontend" - hmac.secret: "${CLEAR=frontend2backend}" + hmac.secret: "${CLEAR=changeit}" diff --git a/examples/todo-app/frontend/src/test/java/io/helidon/examples/todos/frontend/TodoServiceTest.java b/examples/todo-app/frontend/src/test/java/io/helidon/examples/todos/frontend/TodoServiceTest.java index f6159312668..dc412ca9c37 100644 --- a/examples/todo-app/frontend/src/test/java/io/helidon/examples/todos/frontend/TodoServiceTest.java +++ b/examples/todo-app/frontend/src/test/java/io/helidon/examples/todos/frontend/TodoServiceTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023 Oracle and/or its affiliates. + * Copyright (c) 2021, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ class TodoServiceTest { private static final JsonObject TODO = Json.createObjectBuilder().add("msg", "todo").build(); - private static final String ENCODED_ID = Base64.getEncoder().encodeToString("john:password".getBytes()); + private static final String ENCODED_ID = Base64.getEncoder().encodeToString("john:changeit".getBytes()); private static final Header BASIC_AUTH = HeaderValues.create(HeaderNames.AUTHORIZATION, "Basic " + ENCODED_ID); private static URI backendUri; diff --git a/examples/todo-app/frontend/src/test/resources/application-test.yaml b/examples/todo-app/frontend/src/test/resources/application-test.yaml index 663f75ad0a5..cfc65f4c8dd 100644 --- a/examples/todo-app/frontend/src/test/resources/application-test.yaml +++ b/examples/todo-app/frontend/src/test/resources/application-test.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2021, 2023 Oracle and/or its affiliates. +# Copyright (c) 2021, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -28,4 +28,4 @@ security: realm: "helidon" users: - login: "john" - password: "password" + password: "changeit" diff --git a/examples/webclient/standalone/src/main/resources/full-webclient-config.yaml b/examples/webclient/standalone/src/main/resources/full-webclient-config.yaml index 7eabb560ca4..e106ffd7504 100644 --- a/examples/webclient/standalone/src/main/resources/full-webclient-config.yaml +++ b/examples/webclient/standalone/src/main/resources/full-webclient-config.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -66,10 +66,10 @@ client: truststore: keystore-resource-path: "path to the keystore" keystore-type: "JKS" - keystore-passphrase: "password" + keystore-passphrase: "changeit" trust-store: true client: keystore: keystore-resource-path: "path to client keystore" - keystore-passphrase: "password" + keystore-passphrase: "changeit" trust-store: true diff --git a/examples/webserver/mutual-tls/automatic-store-generator.sh b/examples/webserver/mutual-tls/automatic-store-generator.sh index e40ccfe94ab..03d7da1ca75 100644 --- a/examples/webserver/mutual-tls/automatic-store-generator.sh +++ b/examples/webserver/mutual-tls/automatic-store-generator.sh @@ -1,6 +1,6 @@ #!/bin/bash -e # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -25,54 +25,54 @@ SINGLE=true createCertificatesAndStores() { mkdir out echo 'Generating new key stores...' - keytool -genkeypair -keyalg RSA -keysize 2048 -alias root-ca -dname "CN=$NAME-CA" -validity 21650 -keystore ca.jks -storepass password -keypass password -deststoretype pkcs12 -ext KeyUsage=digitalSignature,keyEncipherment,keyCertSign -ext ExtendedKeyUsage=serverAuth,clientAuth -ext BasicConstraints=ca:true,PathLen:3 - keytool -genkeypair -keyalg RSA -keysize 2048 -alias server -dname "CN=localhost" -validity 21650 -keystore server.jks -storepass password -keypass password -deststoretype pkcs12 - keytool -genkeypair -keyalg RSA -keysize 2048 -alias client -dname "C=CZ,CN=$NAME-client,OU=Prague,O=Oracle" -validity 21650 -keystore client.jks -storepass password -keypass password -deststoretype pkcs12 + keytool -genkeypair -keyalg RSA -keysize 2048 -alias root-ca -dname "CN=$NAME-CA" -validity 21650 -keystore ca.jks -storepass changeit -keypass changeit -deststoretype pkcs12 -ext KeyUsage=digitalSignature,keyEncipherment,keyCertSign -ext ExtendedKeyUsage=serverAuth,clientAuth -ext BasicConstraints=ca:true,PathLen:3 + keytool -genkeypair -keyalg RSA -keysize 2048 -alias server -dname "CN=localhost" -validity 21650 -keystore server.jks -storepass changeit -keypass changeit -deststoretype pkcs12 + keytool -genkeypair -keyalg RSA -keysize 2048 -alias client -dname "C=CZ,CN=$NAME-client,OU=Prague,O=Oracle" -validity 21650 -keystore client.jks -storepass changeit -keypass changeit -deststoretype pkcs12 echo 'Obtaining client and server certificates...' - keytool -exportcert -keystore client.jks -storepass password -alias client -rfc -file client.cer - keytool -exportcert -keystore server.jks -storepass password -alias server -rfc -file server.cer + keytool -exportcert -keystore client.jks -storepass changeit -alias client -rfc -file client.cer + keytool -exportcert -keystore server.jks -storepass changeit -alias server -rfc -file server.cer echo 'Generating CSR for client and server...' - keytool -certreq -keystore server.jks -alias server -keypass password -storepass password -keyalg rsa -file server.csr - keytool -certreq -keystore client.jks -alias client -keypass password -storepass password -keyalg rsa -file client.csr + keytool -certreq -keystore server.jks -alias server -keypass changeit -storepass changeit -keyalg rsa -file server.csr + keytool -certreq -keystore client.jks -alias client -keypass changeit -storepass changeit -keyalg rsa -file client.csr echo 'Obtaining CA pem and key...' - keytool -importkeystore -srckeystore ca.jks -destkeystore ca.p12 -srcstoretype jks -deststoretype pkcs12 -srcstorepass password -deststorepass password - openssl pkcs12 -in ca.p12 -out ca.key -nocerts -passin pass:password -passout pass:password - openssl pkcs12 -in ca.p12 -out ca.pem -nokeys -passin pass:password -passout pass:password + keytool -importkeystore -srckeystore ca.jks -destkeystore ca.p12 -srcstoretype jks -deststoretype pkcs12 -srcstorepass changeit -deststorepass changeit + openssl pkcs12 -in ca.p12 -out ca.key -nocerts -passin pass:changeit -passout pass:changeit + openssl pkcs12 -in ca.p12 -out ca.pem -nokeys -passin pass:changeit -passout pass:changeit echo 'Signing client and server certificates...' - openssl x509 -req -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client-signed.cer -days 21650 -passin pass:password - openssl x509 -req -in server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server-signed.cer -sha256 -days 21650 -passin pass:password + openssl x509 -req -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client-signed.cer -days 21650 -passin pass:changeit + openssl x509 -req -in server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server-signed.cer -sha256 -days 21650 -passin pass:changeit echo 'Replacing server and client certificates with the signed ones...' - keytool -importkeystore -srckeystore client.jks -destkeystore client.p12 -srcstoretype jks -deststoretype pkcs12 -srcstorepass password -deststorepass password - openssl pkcs12 -in client.p12 -nodes -out client-private.key -nocerts -passin pass:password - openssl pkcs12 -export -in client-signed.cer -inkey client-private.key -out client-signed.p12 -name client -passout pass:password - keytool -delete -alias client -keystore client.jks -storepass password - keytool -importkeystore -srckeystore client-signed.p12 -srcstoretype PKCS12 -destkeystore client.jks -srcstorepass password -deststorepass password - keytool -importkeystore -srckeystore server.jks -destkeystore server.p12 -srcstoretype jks -deststoretype pkcs12 -srcstorepass password -deststorepass password - openssl pkcs12 -in server.p12 -nodes -out server-private.key -nocerts -passin pass:password - openssl pkcs12 -export -in server-signed.cer -inkey server-private.key -out server-signed.p12 -name server -passout pass:password - keytool -delete -alias server -keystore server.jks -storepass password - keytool -importkeystore -srckeystore server-signed.p12 -srcstoretype PKCS12 -destkeystore server.jks -srcstorepass password -deststorepass password + keytool -importkeystore -srckeystore client.jks -destkeystore client.p12 -srcstoretype jks -deststoretype pkcs12 -srcstorepass changeit -deststorepass changeit + openssl pkcs12 -in client.p12 -nodes -out client-private.key -nocerts -passin pass:changeit + openssl pkcs12 -export -in client-signed.cer -inkey client-private.key -out client-signed.p12 -name client -passout pass:changeit + keytool -delete -alias client -keystore client.jks -storepass changeit + keytool -importkeystore -srckeystore client-signed.p12 -srcstoretype PKCS12 -destkeystore client.jks -srcstorepass changeit -deststorepass changeit + keytool -importkeystore -srckeystore server.jks -destkeystore server.p12 -srcstoretype jks -deststoretype pkcs12 -srcstorepass changeit -deststorepass changeit + openssl pkcs12 -in server.p12 -nodes -out server-private.key -nocerts -passin pass:changeit + openssl pkcs12 -export -in server-signed.cer -inkey server-private.key -out server-signed.p12 -name server -passout pass:changeit + keytool -delete -alias server -keystore server.jks -storepass changeit + keytool -importkeystore -srckeystore server-signed.p12 -srcstoretype PKCS12 -destkeystore server.jks -srcstorepass changeit -deststorepass changeit echo "Importing CA cert to the client and server stores..." if [ "$SINGLE" = true ] ; then - keytool -v -trustcacerts -keystore client.jks -importcert -file ca.pem -alias root-ca -storepass password -noprompt - keytool -v -trustcacerts -keystore server.jks -importcert -file ca.pem -alias root-ca -storepass password -noprompt + keytool -v -trustcacerts -keystore client.jks -importcert -file ca.pem -alias root-ca -storepass changeit -noprompt + keytool -v -trustcacerts -keystore server.jks -importcert -file ca.pem -alias root-ca -storepass changeit -noprompt else - keytool -v -trustcacerts -keystore client-truststore.jks -importcert -file ca.pem -alias root-ca -storepass password -noprompt - keytool -v -trustcacerts -keystore server-truststore.jks -importcert -file ca.pem -alias root-ca -storepass password -noprompt + keytool -v -trustcacerts -keystore client-truststore.jks -importcert -file ca.pem -alias root-ca -storepass changeit -noprompt + keytool -v -trustcacerts -keystore server-truststore.jks -importcert -file ca.pem -alias root-ca -storepass changeit -noprompt fi echo "Changing aliases to 1..." - keytool -changealias -alias server -destalias 1 -keypass password -keystore server.jks -storepass password - keytool -changealias -alias client -destalias 1 -keypass password -keystore client.jks -storepass password + keytool -changealias -alias server -destalias 1 -keypass changeit -keystore server.jks -storepass changeit + keytool -changealias -alias client -destalias 1 -keypass changeit -keystore client.jks -storepass changeit echo "Generating requested type of stores..." if [ "$TYPE" = PKCS12 ] || [ "$TYPE" = P12 ] ; then - keytool -importkeystore -srckeystore client.jks -destkeystore out/client.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass password -deststorepass password - keytool -importkeystore -srckeystore server.jks -destkeystore out/server.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass password -deststorepass password + keytool -importkeystore -srckeystore client.jks -destkeystore out/client.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit + keytool -importkeystore -srckeystore server.jks -destkeystore out/server.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit if [ "$SINGLE" = false ] ; then - keytool -importkeystore -srckeystore server-truststore.jks -destkeystore out/server-truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass password -deststorepass password - keytool -importkeystore -srckeystore client-truststore.jks -destkeystore out/client-truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass password -deststorepass password + keytool -importkeystore -srckeystore server-truststore.jks -destkeystore out/server-truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit + keytool -importkeystore -srckeystore client-truststore.jks -destkeystore out/client-truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass changeit -deststorepass changeit fi else mv client.jks out/client.jks diff --git a/examples/webserver/mutual-tls/src/main/java/io/helidon/examples/webserver/mtls/ClientBuilderMain.java b/examples/webserver/mutual-tls/src/main/java/io/helidon/examples/webserver/mtls/ClientBuilderMain.java index 34c999346a6..071d64631c9 100644 --- a/examples/webserver/mutual-tls/src/main/java/io/helidon/examples/webserver/mtls/ClientBuilderMain.java +++ b/examples/webserver/mutual-tls/src/main/java/io/helidon/examples/webserver/mtls/ClientBuilderMain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023 Oracle and/or its affiliates. + * Copyright (c) 2020, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,7 +55,7 @@ static Http1Client createClient() { .keystore(store -> store .trustStore(true) .keystore(Resource.create("client.p12")) - .passphrase("password")) + .passphrase("changeit")) .build(); return Http1Client.builder() .tls(Tls.builder() diff --git a/examples/webserver/mutual-tls/src/main/java/io/helidon/examples/webserver/mtls/ServerBuilderMain.java b/examples/webserver/mutual-tls/src/main/java/io/helidon/examples/webserver/mtls/ServerBuilderMain.java index a56686c9cc5..6f1878aa1d4 100644 --- a/examples/webserver/mutual-tls/src/main/java/io/helidon/examples/webserver/mtls/ServerBuilderMain.java +++ b/examples/webserver/mutual-tls/src/main/java/io/helidon/examples/webserver/mtls/ServerBuilderMain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023 Oracle and/or its affiliates. + * Copyright (c) 2020, 2024 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -71,7 +71,7 @@ private static void securedSocket(WebServerConfig.Builder server, ListenerConfig .keystore(store -> store .trustStore(true) .keystore(Resource.create("server.p12")) - .passphrase("password")) + .passphrase("changeit")) .build(); socket.from(server.sockets().get("secured")) diff --git a/examples/webserver/mutual-tls/src/main/resources/application.yaml b/examples/webserver/mutual-tls/src/main/resources/application.yaml index d7ca3f52f34..959a9d9b01a 100644 --- a/examples/webserver/mutual-tls/src/main/resources/application.yaml +++ b/examples/webserver/mutual-tls/src/main/resources/application.yaml @@ -24,13 +24,13 @@ server: client-auth: "REQUIRED" trust: keystore: - passphrase: "password" + passphrase: "changeit" trust-store: true resource: resource-path: "server.p12" private-key: keystore: - passphrase: "password" + passphrase: "changeit" resource: resource-path: "server.p12" @@ -39,12 +39,12 @@ client: client-auth: "REQUIRED" trust: keystore: - passphrase: "password" + passphrase: "changeit" trust-store: true resource: resource-path: "client.p12" private-key: keystore: - passphrase: "password" + passphrase: "changeit" resource: resource-path: "client.p12" diff --git a/examples/webserver/mutual-tls/src/main/resources/client.p12 b/examples/webserver/mutual-tls/src/main/resources/client.p12 index 4eb3b8325cd0190163032aca86e1d4fc94856822..9529b6722be0cb920ecceae276fb9be270ac30ae 100644 GIT binary patch literal 4274 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 delta 4105 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 tls .privateKey(key -> key .keystore(store -> store - .passphrase("password") + .passphrase("changeit") .keystore(Resource.create("server.p12")))) .privateKeyCertChain(key -> key .keystore(store -> store - .passphrase("password") + .passphrase("changeit") .keystore(Resource.create("server.p12"))))); } diff --git a/examples/webserver/tls/src/main/resources/application.yaml b/examples/webserver/tls/src/main/resources/application.yaml index fbfce40a383..dcbd7702801 100644 --- a/examples/webserver/tls/src/main/resources/application.yaml +++ b/examples/webserver/tls/src/main/resources/application.yaml @@ -1,5 +1,5 @@ # -# Copyright (c) 2020, 2023 Oracle and/or its affiliates. +# Copyright (c) 2020, 2024 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ config-based: tls: private-key: keystore: - passphrase: "password" + passphrase: "changeit" resource: resource-path: "server.p12" diff --git a/examples/webserver/tls/src/main/resources/server.p12 b/examples/webserver/tls/src/main/resources/server.p12 index ff8e4ddfc7fc9907376df9a9fb5d453a466c6196..a692efcf98ddc979a8875da4671294f37ce7b7b7 100644 GIT binary patch literal 4218 zcmY+EbyO1!+r}Aez(#kcC?K`bh)61(0|eimxbL;*F2%Km$jLxq6!1Y&%W zBH&X3cY)N5YvX!G zK|6=P_Bl$PFT_0oqJdKskfFMmE)3@h32op;3#v=?jfe<=L{3aaHxta9`>5|57&H9o zES)m77accc`Z9SNDc;7KBK0-;O=7crL|h!1Z2zTOhNrG}nqK&*cJZ~Cr%$EYUDn8Nh_@S7r6>3qDzf1VCBojV=B`Calkjy`L&xDX&&SBj_+k!?A z25NkFIZ}6Cbxqoj(U33Mgs&x!^ zS1WGVSx@piC`V-t_iYU#c01A6GCK`g1h3mR&RMEgv@X&jxqDCs_(~yCzG?H*&PnaI zh^mqv_J!Yx7{|+>Kj?U^Da`SA+!LmWwKdqr$tdh_`*mDDa#0*zx`22W`VUJ2*KhoE zP-2P^UL7t2xm-FLu59amEAs+y&)_tJKo;sOHmmSe(`(WThMt&yy}Yh|)R$L^u>$rq z0EMe1p2U-;&_|Z1tygKTBB`=Ux_jT+=_Ya!OgrPYe9hPQKk|Y5nJDyIAwyj3ij}AF z%R1ye52O9bmQCtA1(y~QbzQBkA|8HVr-sb|c{x5+^_*m3#877e{fakkN(Mk3Wznk zdHHHuYlY5Z)jKi=WTe4&Ytl{>tkvL=^DpJw4XC;(dn*l+z#efF;zpKz-67Q558iHE zfussnCqDI7`q>Fp9OqOWK(yFnCsghtXPDZXpPguF^B595Uu)VcSHgT$U)uT#Vvl9* zR+y`yN=q663G=wQZ_zb$IU0@Tbdl)azjpR!W<_ zFyoP+WWM0mxP|n_OjG}+x9O!>{*(GKnvtC-MqIgf5MyyqszHA`7i2QI1Qi!zdZYp!v zJXgt^CbMs=?tVmCsgqL(>1{IJyU6Tp5UWg{p<9et#s_G%Lcajt1%GWDc$m=w%XE|c zktS6Ia&EUlr1_4=%}Fum(jlp04hif`EO?fh@osi`g9<2&|Sy9Iy7kGyRY^G{48C)6Cn{nzd#ZF5 zq&_Ei(65mtzE*L*yk)Ey*9xq>rPKjNL?DvV+Y^M_+BYQe(n5(N&ik=%Ov*N9Y^`Wc zC$jB3m=wr<4qjtBPTIFvHhi`;fy)gG^hJl-klFZgOF8&Rn;u~kah_{6w{bG+&3?{^ z4k9S#mu8tI58{e#KJERC2{SpQ_oQWl6>`eRaZ7qXB!5@xiau5l3HezxM8$WJrx(1X zF$c#>5(e0@`D;YbCa^2mSGO#fr>i^5*1|Q_uMpvq{I@Bsp9eUl##!E?shhJisTxzN z_|~wsKkQ$(JSG`bB^1@Ws&W48^|z}tme?^uewz8rbfKsD6z`(i7>N+xe>#E*BKsa| zCxM-a@RQ_#ri87G2%Ww9x^M*PADUUq<=(MOsNE1=i1JeVY$TR);QJTF-{=IUcbRYJ z`^dO*s}#U7M;^64xT@)i6ejUSB}b(gTgxMcIOUXcoVA6mqfx&Qv8B|*2LDCrmk;dSmQ6uwqoCyfMq((U;hGjx~Aw()v`{2$UFSIKFkuU+M3`0yc>~MDs{;A!Euwg=Qo*6>UiKZN6PTbfqKo;A+>Kp z&$;+CXWE^441_Dim9~pA@AoP^!2~lDE2_U0vF`BjOk!%>p%kdEXTr0BmMKKpEny%g zFOW9Ny?oc-g3dCO9?YFw?ZGgMEHCYa(}mFTthl{|;(A5K9fYQfATbLH-8pGYBuE4RZVu)sS| zsZfbOs5YxhBf}&{rciA)qp$@F+hlq4PywY*@u%8 zk?1YTpJge!($V}%&K5Jo-yRZmOCYUMFA6-+XO@L{-PJpzui!mt>plwjP>~d#V>C-; zX-2~^7$Onhe0F;?{%h;wh^>)QeWOLpM>Wxs#Y%WuAMDZB#bUttSVOaA&P!>TK(?rj z3%NOJ6?dW4U*X@|W|S~f{D%P&r2WT8vPUlA``3*K-WGe)Q};K&-7Tg`uYakoxP^5Z z=1nE|I4O3{P&<4urB&L|=8}B!h`mf`e&@v}7yM6szPefh3f|h;=c~2AQTZ+VMLlLK zl3b}Px)x)u%Z}Q$%E>%z=uN&T)kyih$CNKBPEVFcS3PHu`UZ-IjlN7!2Gqm}-L5d1 zVZkUHwmScbrSg*>zF^me1WfM5O8J?ZKzE9Kye^PScV~=AT?0GOlr$Aw!*~c`%>Ou_ zzBC!b!OG`4X;R)@R0P}(a1)f8Z!C;y1%2X~K&m9t-FD{>(3(W?TxKV& zE*2lc>(++H=3m6yNg<&ziZ0BTT1pdM9i*uSsgi z@r02D(ZSuDHNx=QCaJ9YPc+Qrq~9(zaDUOgDb()X4%swLOpwsocM+=*lwF%+nCB~V z*QQW*s1R~wxZ-`}Kdvbjh55zoW=s_4%stAVNqv7f&UvBw9^VZ+>i(30X~>^Zoa_(* za}X!M%2$ZAYFka|`%CR-pM3TIRR7$Dmk+NWy1aCflFokimNBKbPz^vX^_JynUk;~8 zP=cBPxxKdB-r!)!o5Tz@Q&GBS_QnOR)Y)#tPA4R2?-*uB&{@7dKG8bboF$v z_tqmB`m~{`mh2*qc+D`ID8YW851So?)2V283Rp>u=8p*Z0+ll2_n0~4MR1vUq3q*` zcw#F$yA4rb@p`FLFV~#A_(6u9*`|=V?g}@7u+~RAdN3|@+^4Z&Bb>+IsiQLERhH09 zURGW8PT^I<(jTUu1L|_py3?;UDsO+oh0!t{c5~F!fwBrsNGoRv2Bg$&;TuUL%IWds zsBlV4-;J!$7*ugqoSXO8Bur;;o!PCk-A{$R7w)*85Y;l?rmRHi$};K6@XQ4s=f}LQ zOzGqqxh9U7rIOgS&KV8o#4oGp{Y&%+tK*~eh+E#Tepb{&=8qg6NW9+f>J61op`}r; z?bG3|UOmr|=oa7E%{f*QrSV$~Bl{$F#owStgM3K)^cQxxT^n`w)=y2vA)R$5jzolO zJCN$LWXYhZ9Ty%KJGL$ToUJYr1svG)G>;=)f95Kco&k!jg!EgLmR9%M_NX$k;lQ(4 zo^ou_!ZbQ1T;lQEPICZvHJf#)JT%eRm+Y27YE_d)|pznJC_ytkAWwncQW)3b)|<3?@-Ty!N- z^1S|q-^iRPmy&Qw3A#b*QTM+b>_~g zxq}*|uV}M&dDd?byPnMeeq-HBixd?Momq^ijBr3OT~IC9l>9WTkH}Tfa^$_Ig~#P# zK@%;BW8Gn)&zV5ALbV?GC;L;6`xQDZYRv;Wa_uH9Ped3zLn|rjyM{!JBdzRaGP*|# zAwJkg$mN`Ehsq>FwcM0f3t6X;-RfIf#QjHcO+6KU^mP3x&<9W+D3}-|L`g)*3L*f~ zA3kRiH5BeS3FAe+83|dsG0s{bl!%zf*1jwTkH{i-jqE)s< z*Q{Y7Y{*T9%rD>jz$ly2XySr_M@#z`6xz{*V4f>rr9V+X!@m0mVcjO-*$&5G^!=N8 zCvNSPED{_4hw3^ai(##&baAC2%ZTD(hSkvSj3=rE?cgTxz^vsvjOXy=Pjg!#4*1kD z{l>(PcC!C})pTkTF>qE&aPc#DLix9^{}0A(@h5w+C`=TJCXEID__6K8<7g&qVMuYc z7}lW_C%@gbvk(?0m&BRV<6$QGIt;w77Bn+^dJZq=40qsfx&E3!nhajD?7XYO5{dfX z1Z@uiP}zI-U-^_SFx_eNXn=I>|5Mb1@)c72TkxbqhXtoujXlmo zP5ofJWoJUDUp9`O=9ZYT!Rcx`JdE-hn>LO3=BF?z zGG4BXOKPQ>O{w~w%m(W3s9lVxa%7=Jx%W$d=+q^nNR(VT74mmCJyf!GzE5I!wpsH| zISk#HSY@{>9HZF9dM}o<;MjpMm_!Gkn;UW^1RQ9o!C-I>j*tbUSJ4(wFANVmIcdei zrp?kr#s`s+6_xgRo`-@OY@0_Q^8|vGiNvystAdcv*Tn9-YMD|()I2rGM{ujer3T5Ed|@E$cO8 z%fJ>1351M~3@btNcoyT)jR-QAvy%9lA4w|SOLM~7nCJQwW477nEFD$rrq zAXT=eXm>mSN<~vx6)d8DROi*~;MF7tqulCMZ0haep?EsN!ehy@@vZJo6%Z9{_-#`E%>31{z$b7&85xP^GmRtBA@Meok_9X(H90XjI5agjGB!9iFoFtP1_>&L zNQUl^rN8VNqR`{hb!v8L*anxDDZFDfEz=kcZ5eDr6lH`00*(sb-xw+t$ zKp)AY2!*@k`~wPvntYQ6;sifz9(cwC-3F=+|1X`*fv9QUQnJ2~_ddIyW0`C=>tcUV zCBvAlPvN5BtFX5C%?RAr%tW)84Y^jgVJ>La1LMTq$;X11mrEU#-SK2|xM8LxYjOR) zd&vNT2k%hPX_MHj$WQ?1n=&V=wcc#?6~H zKgj*(zaqr`>!yjj-+7fA4?U>$;mCh8d_?7FD>ufpm<>`?rNQMgSgnSWC;DA3iQ+Nc z2`;KXS?8)E%A^7Q;suN{BL3Aomb=6ZBoFyi#B+DExH!X@Pn6kYtwt*c8~i75Y@&3+ zMJhh(vGD;SzSITgdiaW|Wq5Okjn$ei8Z!zck}#7J>Hq*_QQ;k#L6$;m0rh{uY$Ahh zHL}2MMfO*yI+0zt#Cp6WJpINo?r|5KR}q$NS~p!pvt5~LuYn5co}btJndgRCS30#B z*gQm+ghv5rxK|O>H$?7DK`tT*{|mDd|0j*y4AaZb;&ZSXRy(`chXjdBq?r1rH$J^? z?Q6UqRJPU(c3-Rz87%o`K@xvz_WrSqESybcL<8^Osz-GnbF}B8%k&`JunD*h`h$75 z-qEL>TRMYhHns)uII!>PE{T@zQmyLt%WS(mnQi_DbvExPeMN|pJ8OEOMS~Cs?#ttZ za5Lh-DT)|UbCDRV?b$-n?ms=3*qZ4(6ke?AA_)HaqQ9$pH93k%m`i`c@?yR~9RbZa zflFy)x1BP9#l*|0b=;gv*rWo3%E8kmqQAK~i28O7XOZY2-SH(5H z1YPdhwyyl|26Zb`aXuBo^$I+%&sr7)-CntndvaBzD9V-0sw=Me1a&-$`}DHB^}`ca z1(~6^;R~xlTJqn(xvY}Q_K3^P+mF>s{tT{>gt)8xEMBCd(YsUaXb)#=cJSNBQGgdQ zb>;3o13BXUbDn?AR)MtY71Nr8LlhBijs7KQFdGkMEhfsJnnR~tMt5pnR~>AEg4$Ol z9U5?Q97zZ?otWN})xm}a9R31U(XutKSSLzW9POyI2_ruOInhZ3098QH*;z&X($|w_ zpr6h6vf#^!JClJP?%7?gso+3A*UY~r`WIROZc=v*yCi=+o=K=^(Z)`PNN9p5;gLg% zr0$$#_JPMWP=ZTNre8)nroe|0n}NDRKjpQ7+`_?xQvSWQorCUfOjSPk|FhDQ!IJe= za(L@`+8}01PynL>VYAXLP{c0&)wDsuOb>mru7S60PnrO_Qh_ylrK@3ZVm{P!1)~l`E z|TOq19%Z4-OYr;rI6-W>SS` zHfuAN2LD2t93_xyz=j0NN%jug=H=;5qHEef0C5d#erlbqHvpzCJLW3|xSyXAXUk)m zN*mRy{rxycu1ok9oD-|=!O3vO+f#NM#txl;uHGCfdTw5S9HnE$b7!9RwTQ%&pgo6Q zB|d){MpF(Ks}HY}WX4)Wxke$U0$k{Cj((kL9otufe7t*CJ0gOQR=}t)!{vafEV{XG zgv}hjA){p|OHGG4^xM^osigeX;Wz)uaQ@N0;XOR)(ye!i<|Z5y$)-S>v`GHyL1|9a zM{&}06V?zj`p(^uI93Im$|GOT4gV{jW*vV9Mv7Sa*#Ia{9nt>_yK3P7ChvGw z^l7(+!%XJ~$QRm2-HOi~oPlRSPwP5_I$hv}C&!jCkShOg2vyDD-`zP>4 zQXk2OS&9c%m|NYD2!_i~!`sxqyG<9wmnHKqk?!5PD+0_l+J5>Mys2>2In>b;6zP9m zaE||r0T9I##L4p!qQI`4Yyyr2n3;ebAoO3-S_{v2VS4b!4Nm=r!cY1>C+M%nF2#WTs@*< zsOC*F5u=|08}yChk<=E>fc`K574Co8q3t4F^E0tyz(@qBXMdt)zTw|O{zs-o22nVn zaxit$eT@3}RgPG3@_q{ai9gGVS$@G*slKcX~d?$|9ZeHW^YxkSy!)`5QooRqjG zsf7hXYmBQMbabCNL2!@7cFDXN_nF$(v3Zab&k3UJ_FT5Z`ZziLXP3(?=;IS69jAmD zeGMMK^&3BcH(M%(8?4A{4}xdJuLnc*VCBVnIncBffldYIpMk~@VE!_Ti+3^rZ6YON z-2I-S=SF7A>BRa`JFw4~9(aG#G~vIJ$32(&BJZXrz(kXR8d0p`b_+6R`pVbVSR991 z+_1M)%G`I%#+wD|Ke!D|Vx&Y0a?1H2tG(lj%u&ogfEgF8yxuk!l5oI+CR|C*T~ zf=}6`&6=^(4*~yiKc5}a!0Ffxe5Fg4xnEV@M()s+f}_>BPCV|Wk&%JRPSP))HS z*l94vofq5+}rP9+9c<#Y&8o!jbldC%N5(}Q^-M!VMm>21U`PP z(XtKa!{azu-v>3MNm+ko$7%ty)nD7QC>c(9zNcb${MvV)jU?*T4QJ_hKdG9@T>Piw z9<2S^A@|$8^W}pz;j`i*Wo&$GtQ|#P`(y$82$rbI5~2%hX(z_rpZh7+I+n zy@Pcjyr%Sub+oouQ_VNEAXYzTu?GOXL6J&Pw)VUnQ-;k(v;BF&B`S*2wSd34#u>R= zGu42>AmvbQpu`bIRtjkgvV{QGNuMTTv+b+(+=z?nVOK6B8<7&-nsV40Fg`FLFbM_) zD-Ht!8U+9Z6q;aQ5!Q