Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop to master #1196

Merged
merged 104 commits into from
Jan 5, 2024
Merged
Show file tree
Hide file tree
Changes from 92 commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
6e9bb64
Fix #1055: Update develop version to 1.6.0-SNAPSHOT
banterCZ Sep 18, 2023
3e21ecf
Fix #1034: Prefer Duration over int and long
banterCZ Sep 11, 2023
5212356
Merge pull request #1056 from wultra/issues/1055-version-1.6.0-SNAPSHOT
banterCZ Sep 20, 2023
6b06170
Fix #1059: Use core-bom
banterCZ Sep 20, 2023
9408faa
Bump org.springframework.boot:spring-boot-starter-parent
dependabot[bot] Sep 25, 2023
7233852
Merge pull request #1061 from wultra/dependabot/maven/org.springframe…
dependabot[bot] Sep 25, 2023
6b7faff
Fix #1062: Move uniqueness service logs to debug level (#1063)
petrdvorak Sep 26, 2023
09df129
Fix #1065: Filter jboss descriptor with bouncycastle version from pom
banterCZ Oct 4, 2023
4f06ca4
Merge pull request #1066 from wultra/issues/1065-bc-jboss-descriptor
banterCZ Oct 5, 2023
08230a6
Fix target path of filtered jboss descriptor
banterCZ Oct 5, 2023
489cd73
Merge pull request #1067 from wultra/issues/1065-jboss-descriptor-path
banterCZ Oct 5, 2023
765d7f8
Fix #1068: DocuCheck Warnings
banterCZ Oct 11, 2023
4f9b033
Bump net.javacrumbs.shedlock:shedlock-bom from 5.8.0 to 5.9.0
dependabot[bot] Oct 16, 2023
d07beb3
Merge pull request #1070 from wultra/dependabot/maven/net.javacrumbs.…
dependabot[bot] Oct 16, 2023
e624efd
Fix #1071: Exclude lombok from war
banterCZ Oct 16, 2023
ae3b2b3
Fix #1073: Executable war
banterCZ Oct 16, 2023
ee481c4
Merge pull request #1069 from wultra/issues/1068-docucheck-warning
banterCZ Oct 16, 2023
7a9cdc3
Merge pull request #1072 from wultra/issues/1071-exclude-lombok
banterCZ Oct 16, 2023
16c4242
Merge pull request #1074 from wultra/issues/1073-executable-war
banterCZ Oct 16, 2023
ab58e79
Add GitHub action for SCP deploy
banterCZ Oct 16, 2023
ff3228a
Merge pull request #1077 from wultra/issues/scp-deploy
banterCZ Oct 17, 2023
8cbdf42
Fix #1081: Enable Authorize button in springdoc-openapi-ui for Basic …
banterCZ Oct 19, 2023
cf19074
Fix #1083: PowerAuthClientException#getPowerAuthError is nullable
banterCZ Oct 19, 2023
c897dae
Merge pull request #1082 from wultra/issues/1081-swagger-basic-auth
banterCZ Oct 20, 2023
56229e6
Merge pull request #1084 from wultra/issues/1083-PowerAuthClientExcep…
banterCZ Oct 20, 2023
32ee91f
Fix #1085: Swagger UI does not follow HTTPS redirect
banterCZ Oct 20, 2023
b4ac537
Merge pull request #1086 from wultra/issues/1085-swagger-https-redirect
banterCZ Oct 20, 2023
799a114
Clean-up embed-tomcat dependencies
banterCZ Oct 20, 2023
a8fe3b4
Bump org.springframework.boot:spring-boot-starter-parent
dependabot[bot] Oct 23, 2023
2c170e1
Bump net.javacrumbs.shedlock:shedlock-bom from 5.9.0 to 5.9.1
dependabot[bot] Oct 23, 2023
b23c7b1
Merge pull request #1089 from wultra/dependabot/maven/net.javacrumbs.…
dependabot[bot] Oct 23, 2023
695387c
Merge pull request #1088 from wultra/dependabot/maven/org.springframe…
dependabot[bot] Oct 23, 2023
fe0e3e7
Merge pull request #1087 from wultra/issues/1073-executable-war
banterCZ Oct 23, 2023
c541ea6
Clean-up maven dependencies (#1090)
banterCZ Oct 24, 2023
4dbba94
Fix #1092: Update documentation regarding AS support
banterCZ Oct 25, 2023
37d9c59
Merge pull request #1093 from wultra/issues/1092-application-server-v…
banterCZ Oct 25, 2023
3723198
Bump org.apache.commons:commons-text from 1.10.0 to 1.11.0
dependabot[bot] Oct 30, 2023
4dad650
Merge pull request #1095 from wultra/dependabot/maven/org.apache.comm…
dependabot[bot] Oct 30, 2023
8315528
Fix #1035: Remove ShedlockEntity (#1096)
jnpsk Oct 30, 2023
7107b09
Merge pull request #1060 from wultra/issues/1059-core-bom
banterCZ Oct 30, 2023
24d92d4
Fix #1101: Update Wultra dependencies to SNAPSHOT version
banterCZ Oct 31, 2023
b6f0e97
Merge pull request #1102 from wultra/issues/1101-wultra-dependencies-…
banterCZ Oct 31, 2023
b7c0886
Fix #1080: Protection against duplicate entries in the pa_operation_t…
jnpsk Oct 31, 2023
1d3b363
Fix #1100: Application check in update callback api (#1103)
jnpsk Oct 31, 2023
578b959
Fix #1097: Edit callback API documentation (#1098)
jnpsk Nov 1, 2023
b16081d
Merge pull request #1038 from wultra/issues/1034-duration
banterCZ Nov 2, 2023
958bd2a
Fix #1108: Update database structure diagram (#1111)
jnpsk Nov 6, 2023
a10c77f
Fix #1107: Update activation name (#1109)
banterCZ Nov 8, 2023
549a6b4
Fix #1114: HHH90000025: PostgreSQLDialect does not need to be specifi…
jnpsk Nov 8, 2023
5c3b4d0
Fix equals and hashCode of ActivationHistoryEntity (#1119)
banterCZ Nov 9, 2023
b15b30a
Fix #1122: Add error handling of db changes to migration guide (#1123)
jnpsk Nov 10, 2023
e0cc0ea
Bump net.javacrumbs.shedlock:shedlock-bom from 5.9.1 to 5.10.0
dependabot[bot] Nov 13, 2023
bdc2cea
Merge pull request #1126 from wultra/dependabot/maven/net.javacrumbs.…
dependabot[bot] Nov 13, 2023
3882361
Keep error code of GenericServiceException for updateActivationName
banterCZ Nov 14, 2023
afa72ef
Merge pull request #1128 from wultra/issues/1107-keep-error-code
banterCZ Nov 14, 2023
36e2fb9
Fix #1132: Add paging to operation list
banterCZ Nov 16, 2023
1b753c5
Merge pull request #1133 from wultra/issues/1132-operation-list-paging
banterCZ Nov 16, 2023
4f6da4c
Bump org.bouncycastle:bcprov-jdk18on from 1.76 to 1.77
dependabot[bot] Nov 20, 2023
5877a0b
Merge pull request #1143 from wultra/dependabot/maven/org.bouncycastl…
dependabot[bot] Nov 20, 2023
cc25dae
Fix #1124: Adjust properties of Operation entity/dtos for additional …
jandusil Nov 21, 2023
5097f37
Fix #852: Allow scoping operation to a single activation ID (#1127)
jandusil Nov 21, 2023
fe79a24
Bump org.springframework.boot:spring-boot-starter-parent
dependabot[bot] Nov 27, 2023
0b26022
Merge pull request #1155 from wultra/dependabot/maven/org.springframe…
dependabot[bot] Nov 27, 2023
9072e71
Fix #1150: Non-personalized operations and operation claim (#1151)
romanstrobl Nov 27, 2023
0bd1ae2
Bump org.springdoc:springdoc-openapi-starter-webmvc-ui
dependabot[bot] Dec 4, 2023
cde25d3
Bump nl.jqno.equalsverifier:equalsverifier from 3.15.3 to 3.15.4
dependabot[bot] Dec 4, 2023
2df2750
Merge pull request #1168 from wultra/dependabot/maven/nl.jqno.equalsv…
dependabot[bot] Dec 4, 2023
c08cb1b
Merge pull request #1167 from wultra/dependabot/maven/org.springdoc-s…
dependabot[bot] Dec 4, 2023
06fcb2d
Fix #1169: Custom Spring Boot Banner
banterCZ Dec 5, 2023
e9d71b5
Merge pull request #1170 from wultra/issues/1169-custom-banner
banterCZ Dec 5, 2023
d1e3f94
Fix #1175: Update logback
banterCZ Dec 8, 2023
9c80d62
Bump com.google.zxing:javase from 3.5.0 to 3.5.2
dependabot[bot] Dec 11, 2023
db46ec8
Bump net.javacrumbs.shedlock:shedlock-bom from 5.10.0 to 5.10.2
dependabot[bot] Dec 11, 2023
888044b
Bump io.swagger.core.v3:swagger-annotations-jakarta
dependabot[bot] Dec 11, 2023
50003e4
Bump com.google.zxing:core from 3.5.0 to 3.5.2
dependabot[bot] Dec 11, 2023
f115ee7
Merge pull request #1181 from wultra/dependabot/maven/com.google.zxin…
dependabot[bot] Dec 11, 2023
149871a
Merge pull request #1180 from wultra/dependabot/maven/io.swagger.core…
dependabot[bot] Dec 11, 2023
50c9c94
Merge pull request #1179 from wultra/dependabot/maven/net.javacrumbs.…
dependabot[bot] Dec 11, 2023
bcb3d5a
Merge pull request #1177 from wultra/dependabot/maven/com.google.zxin…
dependabot[bot] Dec 11, 2023
7fb2a6b
Fix #1182: Replace gitter by discord
banterCZ Dec 11, 2023
33de1e0
Fix #1184: Memory leak in CallbackUrlBehavior for RestClient instance…
romanstrobl Dec 11, 2023
b6cf9e9
Merge pull request #1183 from wultra/issues/1182-discord
banterCZ Dec 12, 2023
93e4c6b
Fix #1191: Set release version to 1.6.0
banterCZ Dec 12, 2023
ee62f52
Fix #1193: Update Wultra dependencies
banterCZ Dec 12, 2023
1460765
Fix #1197: Add liquibase tag 1.6.0
banterCZ Dec 12, 2023
683eebf
Fix #1199: Synchronize get access to REST client cache
romanstrobl Dec 12, 2023
631c09f
Merge pull request #1176 from wultra/issues/1175-update-logback
banterCZ Dec 12, 2023
75c7fed
Merge pull request #1200 from wultra/issues/1199-synchronize-get-rest…
romanstrobl Dec 12, 2023
cfe8e75
Merge pull request #1198 from wultra/issues/1197-liquibase-tag
banterCZ Dec 12, 2023
17be0e3
Merge pull request #1194 from wultra/issues/1193-wultra-dependencies
banterCZ Dec 13, 2023
b4cad7c
Fix #1216: Modify Paging of Activations (#1219)
banterCZ Dec 14, 2023
75353d7
Fix #1220: Filter Activations by Status
banterCZ Dec 14, 2023
465213c
Merge pull request #1221 from wultra/issues/1220-filter-activations
banterCZ Dec 14, 2023
fc6b126
Fix #1222: Update DB scripts for migration to release 1.6.0 (#1223)
zcgandcomp Dec 18, 2023
34fa58e
Fix #1227: Add micrometer-registry-prometheus
banterCZ Dec 20, 2023
4f78bdd
Merge pull request #1228 from wultra/issues/1227-prometheus
banterCZ Dec 21, 2023
bbcf724
Fix #1225: Add activationId to OperationDetailResponse (#1229)
jandusil Dec 21, 2023
ee4d02d
Fix #1224: Filtering of operations in operation list by activation ID…
jandusil Dec 21, 2023
24e129f
Bump nl.jqno.equalsverifier:equalsverifier from 3.15.4 to 3.15.5
dependabot[bot] Dec 25, 2023
f05a6e1
Bump io.swagger.core.v3:swagger-annotations-jakarta
dependabot[bot] Dec 25, 2023
da6abd1
Merge pull request #1231 from wultra/dependabot/maven/io.swagger.core…
dependabot[bot] Jan 2, 2024
97ddc21
Merge pull request #1230 from wultra/dependabot/maven/nl.jqno.equalsv…
dependabot[bot] Jan 2, 2024
5cbb6b1
Fix #1238: NullPointerException in Activation Retrieval Method (#1239)
jandusil Jan 5, 2024
1a0d0e0
Merge pull request #1192 from wultra/issues/1191-version-1.6.0
banterCZ Jan 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/scp-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Run SCP deploy

on:
workflow_dispatch:

jobs:
scp-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'temurin'
server-id: jfrog-central
server-username: INTERNAL_USERNAME
server-password: INTERNAL_PASSWORD
cache: maven
- name: Run Maven Package Step
run: |
mvn -B -U package -Dmaven.test.skip=true
env:
INTERNAL_USERNAME: ${{ secrets.JFROG_USERNAME }}
INTERNAL_PASSWORD: ${{ secrets.JFROG_PASSWORD }}
- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SCP_CERTIFICATE }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -t rsa ${{ secrets.SCP_HOST }} >> ~/.ssh/known_hosts
- name: Deploy powerauth-java-server.war
shell: bash
run: |
scp -i ~/.ssh/id_rsa **/target/powerauth-java-server-*.war ${{ secrets.SCP_USERNAME }}@${{ secrets.SCP_HOST }}:/opt/apache-tomcat/webapps/powerauth-java-server.war
- name: Deploy powerauth-admin.war
shell: bash
run: |
scp -i ~/.ssh/id_rsa **/target/powerauth-admin-*.war ${{ secrets.SCP_USERNAME }}@${{ secrets.SCP_HOST }}:/opt/apache-tomcat/webapps/powerauth-admin.war
3 changes: 1 addition & 2 deletions docs/Configuration-Properties.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ The PowerAuth Server uses the following public configuration properties:
| `spring.datasource.username` | `powerauth` | Database JDBC username |
| `spring.datasource.password` | `_empty_` | Database JDBC password |
| `spring.datasource.driver-class-name` | `org.postgresql.Driver` | Datasource JDBC class name |
| `spring.jpa.database-platform` | `org.hibernate.dialect.PostgreSQLDialect` | Database dialect |
| `spring.jpa.hibernate.ddl-auto` | `none` | Configuration of automatic database schema creation |
| `spring.jpa.properties.hibernate.connection.characterEncoding` | `utf8` | Character encoding |
| `spring.jpa.properties.hibernate.connection.useUnicode` | `true` | Character encoding - Unicode support |
Expand Down Expand Up @@ -38,7 +37,7 @@ The PowerAuth Server uses the following public configuration properties:
| `powerauth.service.secureVault.enableBiometricAuthentication` | `false` | Whether biometric authentication is enabled when accessing Secure Vault |
| `powerauth.server.db.master.encryption.key` | `_empty_` | Master DB encryption key for decryption of server private key in database |
| `powerauth.service.proximity-check.otp.length` | `8` | Length of OTP generated for proximity check |
| `powerauth.service.pagination.default-page-size` | `100` | The default number of records per page when paginated results are requested |
| `powerauth.service.pagination.default-page-size` | `500` | The default number of records per page when paginated results are requested |
| `powerauth.service.pagination.default-page-number` | `0` | The default page number when paginated results are requested. Page numbers start from 0 |

## HTTP Configuration
Expand Down
5 changes: 0 additions & 5 deletions docs/Deploying-PowerAuth-Server.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ spring.datasource.url=jdbc:postgresql://localhost:5432/powerauth
spring.datasource.username=powerauth
spring.datasource.password=
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.connection.characterEncoding=utf8
spring.jpa.properties.hibernate.connection.useUnicode=true
Expand All @@ -59,7 +58,6 @@ spring.datasource.url=jdbc:oracle:thin:@//[HOST]:[PORT]/[SERVICENAME]
spring.datasource.username=powerauth
spring.datasource.password=*********
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=none
```

Expand All @@ -71,7 +69,6 @@ spring.datasource.url=jdbc:postgresql://[HOST]:[PORT]/[DATABASE]
spring.datasource.username=powerauth
spring.datasource.password=*********
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=none
```

Expand Down Expand Up @@ -140,7 +137,6 @@ You can specify the individual properties directly in the server configuration.
<Parameter name="spring.datasource.username" value="powerauth"/>
<Parameter name="spring.datasource.password" value=""/>
<Parameter name="spring.datasource.driver-class-name" value="org.postgresql.Driver"/>
<Parameter name="spring.jpa.database-platform" value="org.hibernate.dialect.PostgreSQLDialect"/>
</Context>
```

Expand All @@ -162,7 +158,6 @@ spring.datasource.url=jdbc:postgresql://localhost:5432/powerauth
spring.datasource.username=powerauth
spring.datasource.password=
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
```

## Generating Your First Application
Expand Down
1 change: 0 additions & 1 deletion docs/Deploying-Wildfly.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ spring.datasource.url=jdbc:oracle:thin:@//[host]:[port]/[servicename]
spring.datasource.username=powerauth
spring.datasource.password=powerauth
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect

# Application Service Configuration
powerauth.service.applicationEnvironment=TEST
Expand Down
166 changes: 0 additions & 166 deletions docs/Installing-Bouncy-Castle.md
Original file line number Diff line number Diff line change
@@ -1,169 +1,3 @@
# Installing Bouncy Castle

Since PowerAuth Server in version 1.1.x, installing the Bouncy Castle in OS or Java container is no longer required. The latest version is bundled with the app and cryptographic primitives should work out of the box.

## Legacy: Installing Before 1.1.x

In order to function correctly, PowerAuth software requires Bouncy Castle to be available.

Bouncy Castle library installation depends on Java version and used web container.

PowerAuth server uses dynamic initialization of Bouncy Castle provider, so it is not required to configure security provider statically in the Java Runtime configuration.

You can get the Bouncy Castle provider here:
https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on

### Installing on Java 11

Java 11 no longer provides a library extension mechanism and thus Bouncy Castle library must be installed in the web container.

#### Bouncy Castle on Tomcat

Copy [`bcprov-jdk18on-176.jar`](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on) to your `${CATALINA_HOME}/lib` folder.

<!-- begin box warning -->
Bouncy Castle library will not work properly in case any war file deployed to Tomcat contains another copy of the Bouncy Castle library, even if the war file is not related to PowerAuth.
Bouncy Castle library must be only present in the `${CATALINA_HOME}/lib` folder. The `key spec not recognized` error message will appear in Tomcat log in this case.
<!-- end -->

#### Bouncy Castle on JBoss / Wildfly

PowerAuth server requires a specific version of Bouncy Castle library: `bcprov-jdk18on-176.jar`

In order to make PowerAuth Server work on JBoss / Wildfly, you need to add and enable the external Bouncy Castle module on the server
by adding the `<global-modules>` element in the `standalone.xml` file:

```xml
<subsystem xmlns="urn:jboss:domain:ee:4.0">
<global-modules>
<module name="org.bouncycastle.external" slot="main"/>
</global-modules>
</subsystem>
```

The module should be defined using a new module XML file in JBoss folder `modules/system/layers/base/org/bouncycastle/external/main`:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<module name="org.bouncycastle.external" xmlns="urn:jboss:module:1.8">
<resources>
<resource-root path="bcprov-jdk18on-176.jar"/>
</resources>
</module>
```

Finally, copy the Bouncy Castle library `bcprov-jdk18on-176.jar` into folder `modules/system/layers/base/org/bouncycastle/external/main` so that it is available for the module.

<!-- begin box warning -->
Do not reuse Bouncy Castle module `org.bouncycastle` from JBoss, because version of library provided by JBoss may differ from version required by PowerAuth.
<!-- end -->

#### Testing the Installation

You can test the installation in web container using our simple [bc-check.war application](https://github.com/wultra/powerauth-crypto/releases/download/0.23.0/check-bc.war).

The application performs following checks after startup:
- Check whether BC provider is correctly installed.
- Generate an ECSDA keypair.
- Compute and validate an ECSDA signature.

Once you deploy the application to the web container, you should see following messages in container log:
```
BC provider is installed.
ECSDA signature validation succeeded.
```

In case of any error or different output, please check the troubleshooting guide below.

### Installing on Java 8

Java 8 provides a library extension mechanism which can be used to installed Bouncy Castle with exception of JBoss / Wildfly which has it's own mechanism for installing Bouncy Castle.

#### Bouncy Castle on Tomcat

##### Standalone Tomcat

When running a standalone Tomcat instance, all you need to do is to copy [`bcprov-jdk18on-176.jar`](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on) to your `${JDK_HOME}/jre/lib/ext` folder.

##### Embedded Tomcat

In case you are running Spring Boot application with the embedded Tomcat server, you also might need to register the provider in the Java security configuration file. To do this, add a new line to `$JAVA_HOME/jre/lib/security/java.security` and enable Bouncy Castle security provider on a system level:

```
security.provider.N=org.bouncycastle.jce.provider.BouncyCastleProvider
```

Make sure to add the provider to the top of the list (ideally, N=2).

#### Bouncy Castle on JBoss / Wildfly

PowerAuth server requires a specific version of Bouncy Castle library: `bcprov-jdk18on-176.jar`

In order to make PowerAuth Server work on JBoss / Wildfly, you need to add and enable the external Bouncy Castle module on the server
by adding the `<global-modules>` element in the `standalone.xml` file:

```xml
<subsystem xmlns="urn:jboss:domain:ee:4.0">
<global-modules>
<module name="org.bouncycastle.external" slot="main"/>
</global-modules>
</subsystem>
```

The module should be defined using a new module XML file in JBoss folder `modules/system/layers/base/org/bouncycastle/external/main`:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<module name="org.bouncycastle.external" xmlns="urn:jboss:module:1.8">
<resources>
<resource-root path="bcprov-jdk18on-176.jar"/>
</resources>
</module>
```

Finally, copy the Bouncy Castle library `bcprov-jdk18on-176.jar` into folder `modules/system/layers/base/org/bouncycastle/external/main` so that it is available for the module.

<!-- begin box warning -->
Do not reuse Bouncy Castle module `org.bouncycastle` from JBoss, because version of library provided by JBoss may differ from version required by PowerAuth.
<!-- end -->

Note that when Bouncy Castle module for JBoss / Wildfly is used, Bouncy Castle should not be present in the `lib/ext` folder of the Java runtime, otherwise the following error can occur: `key spec not recognized` due to clash of Bouncy Castle libraries.

#### Testing the Installation

You can test the installation using our [simple Java utility](./util/check-bc.jar):

```sh
$ java -jar check-bc.jar
```

The utility uses following source code to check the provider installation:

```java
import java.security.Security;

public class SimpleTest
{
public static void main(String[] args)
{
String name = "BC";
if (Security.getProvider(name) == null)
{
System.out.println("not installed");
}
else
{
System.out.println("installed");
}
}
}
```

## Troubleshooting Bouncy Castle Installation Issues

In case you get the following error: `key spec not recognized`, there are possible issues:

- Tomcat on Java 11: Check that Bouncy Castle library is installed in `${CATALINA_HOME}/lib`.
- Tomcat on Java 8: Check that Bouncy Castle library is installed in `${JDK_HOME}/jre/lib/ext` and it is not present in `${CATALINA_HOME}/lib`.
- JBoss / Wildfly on Java 11: Check that Bouncy Castle library is installed as a module in JBoss / Wildfly.
- JBoss / Wildfly on Java 8: Check that Bouncy Castle library is not installed in `${JDK_HOME}/jre/lib/ext` and it is installed as an external module in JBoss / Wildfly.
- All containers on Java 8/11: Check that none of the deployed war files contains Bouncy Castle library, even if the war file is not related to PowerAuth.
Another copy of Bouncy Castle library would clash with the globally installed version of the library. This rule applies only for PowerAuth `2019.05` or later.
1 change: 1 addition & 0 deletions docs/Migration-Instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ This page contains PowerAuth Server migration instructions.
When updating across multiple versions, you need to perform all migration steps additively.
<!-- end -->

- [PowerAuth Server 1.6.0](./PowerAuth-Server-1.6.0.md)
- [PowerAuth Server 1.5.0](./PowerAuth-Server-1.5.0.md)
- [PowerAuth Server 1.4.0](./PowerAuth-Server-1.4.0.md)
- [PowerAuth Server 1.3.0](./PowerAuth-Server-1.3.0.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/PowerAuth-Server-0.22.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Java 11 no longer supports installing Bouncy Castle using library extension mech
longer contains the Bouncy Castle library in war files to avoid classloader issues in some web containers (e.g. Tomcat).

The Bouncy Castle provider needs to be installed using mechanism supported by the web container.
See the [Installing Bouncy Castle](./Installing-Bouncy-Castle.md#installing-on-java-11) chapter in documentation.
See the [Installing Bouncy Castle](./Installing-Bouncy-Castle.md) chapter in documentation.

### Tomcat on Java 11

Expand Down
2 changes: 1 addition & 1 deletion docs/PowerAuth-Server-1.5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ This release adds support for PowerAuth protocol version 3.2, which adds several

### Simplified Configuration of PowerAuth Mobile SDK.

You can use the `mobileSdkConfig` value from `POST /rest/v3/application/detail`, see [REST API documentation](https://github.com/wultra/powerauth-server/blob/develop/docs/WebServices-Methods.md#method-getapplicationdetail). This value contains encoded master public key, application key and application secret.
You can use the `mobileSdkConfig` value from `POST /rest/v3/application/detail`, see [REST API documentation](WebServices-Methods.md#method-getapplicationdetail). This value contains encoded master public key, application key and application secret.

Starting with version 1.5.x you can use this single configuration Base-64 encoded string for configuring the PowerAuth mobile SDK instead of using three separated configuration parameters.

Expand Down
50 changes: 50 additions & 0 deletions docs/PowerAuth-Server-1.6.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Migration from 1.5.x to 1.6.0

This guide contains instructions for migration from PowerAuth Server version `1.5.x` to version `1.6.0`.

## Database Changes

### Allow Non-personalized Operations

The column `user_id` in table `pa_operation` is nullable now.

#### PostgreSQL

```sql
ALTER TABLE pa_operation ALTER COLUMN user_id DROP NOT NULL;
```

#### Oracle

```sql
ALTER TABLE pa_operation MODIFY user_id NULL;
```


### Forbid name duplication for operation templates.

Add unique constraint to `templateName` column in `pa_operation_template` table.

Applying this change may fail if there are duplicates in the `pa_operation_template` table. Please make sure there are
no two records with the same name `templateName`. If necessary, remove any duplicities from the table manually. Consider
creating a backup before this operation.

### Add foreign key constraints to operations and applications relation.

Add foreign key constraints to relating table `pa_operation_application`.

Applying this change may fail if there is an inconsistency between tables `pa_operation_application`
and `pa_application` or `pa_operation`. Make sure that `pa_operation_application.application_id` contains references to
existing `pa_application.id` and `pa_operation_application.operation_id` contains references to
existing `pa_operation.id`. If necessary, manually remove orphaned records in `pa_operation_application`. Consider
creating a backup before this operation.

### Add activation_id Column

Add a new column `activation_id` to the `pa_operation` table. This column is a foreign key that references
the `activation_id` column in the `pa_activation` table. Storing the `activation_id` in the `pa_operation` table
provides several enhancements:

* It allows the creation of a new operation tied to a specific mobile device, identified by its activation ID.
* It ensures that the operation can only be approved on that specific mobile device, again identified by its activation ID.

8 changes: 5 additions & 3 deletions docs/System-Requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,12 @@ Powerauth Server may run on other Java versions, however we do not perform exten

PowerAuth Server primary installation method is running the WAR package in the Java VM environment. This chapter provides detailed system requirements.

It is suggested to deploy PowerAuth in its own Java Servlet Container. PowerAuth Server is currently tested with following container technologies:
It is suggested to deploy PowerAuth in its own Java Servlet Container.
PowerAuth Server is currently tested with following container technologies supporting Jakarta EE 9:

- Apache Tomcat 9.x, or
- JBoss Wildfly 9 or newer
- Apache Tomcat 10.x or newer
- Wildfly 23 or newer
- JBoss EAP 8 or newer

PowerAuth supports any JPA2 compatible database, and it is tested with:

Expand Down
Loading
Loading