Files
hawkbit/hawkbit-runtime/hawkbit-update-server
Avgustin Marinov 24d70827b7 Improve hawkBit user management (#1666)
1. Definded with properties users (static) are configured using property map (no need of indexes)
2. AuthenticationProvider that authenticates them is always registered (if not needed - don't configure them)
3. UserDetailsService (in case of missing - won't be registered)
4. Spring security user (spring.security.username) will be registered together with other users (if any). If any - it will be system-wide, otherwise tenant-scoped.
5. UserPrincipal renamed to TenantAwareUser in order to match its purpose.
6. Some if its fields are removes as not needed - to be closer to spring security user
7. DefaultRolloutApprovalStrategy now use UserAuthoritiesResolver instead of UserDetailsService as the central point of truth

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
2024-02-26 16:56:37 +02:00
..

hawkBit Update Server

The hawkBit Update Server (Monolith) is a standalone spring-boot application with an embedded servlet container .

On your own workstation

Run

java -jar hawkbit-runtime/hawkbit-update-server/target/hawkbit-update-server-*-SNAPSHOT.jar

(Note: you have to add the JDBC driver also to your class path if you intend to use another database than H2.)

Or:

run org.eclipse.hawkbit.doc.Start

Usage

The Management UI can be accessed via http://localhost:8080/UI The Management API can be accessed via http://localhost:8080/rest/v1

Enable Clustering (experimental)

Clustering in hawkBit is based on Spring Cloud Bus. It is not enabled in the example app by default.

Add to your application.properties :

spring.cloud.bus.enabled=true

Add to your pom.xml :

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>

Optional as well is the addition of Protostuff based message payload serialization for improved performance.

Add to your application.properties :

spring.cloud.stream.bindings.springCloudBusInput.content-type=application/binary+protostuff
spring.cloud.stream.bindings.springCloudBusOutput.content-type=application/binary+protostuff

Add to your pom.xml :

<dependency>
  <groupId>io.protostuff</groupId>
  <artifactId>protostuff-core</artifactId>
</dependency>
<dependency>
  <groupId>io.protostuff</groupId>
  <artifactId>protostuff-runtime</artifactId>
</dependency>