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

WIP: Rewrite the CoffeeNet integration code for Spring Boot 2.x #67

Open
wants to merge 61 commits into
base: master
Choose a base branch
from

Commits on Feb 16, 2020

  1. Remove logging starter

    derTobsch authored and punycode committed Feb 16, 2020
    Configuration menu
    Copy the full SHA
    d690c87 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    97e868b View commit details
    Browse the repository at this point in the history
  3. Add legacy versions of the dependency management POMs

    The Spring Boot 2.x migration will be a rewrite, so we will keep the
    previous code next to the new version while migrating. Since this will
    need a different set of Maven dependencies, the complete management POMs
    will be replicated into a `legacy/` subfolder.
    punycode committed Feb 16, 2020
    Configuration menu
    Copy the full SHA
    b88fc96 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    693f251 View commit details
    Browse the repository at this point in the history
  5. Add '.legacy' package namespace

    To not collide accidentally while refactoring, the complete
    autoconfigure and actuator code in the `legacy/` folder has now a
    `.legacy` inserted into the package hierarchy.
    punycode committed Feb 16, 2020
    Configuration menu
    Copy the full SHA
    34a142b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    35211de View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    5e5c0ef View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    729e85c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    5f9a555 View commit details
    Browse the repository at this point in the history
  10. Update CoffeeNet version to next release 2.0.0-SNAPSHOT

    The next release will be a REAL major version. This change was brought
    to you by:
    
    ```
    $ ./mvnw versions:set -DnewVersion=2.0.0-SNAPSHOT -DprocessAllModules=true
    ```
    punycode committed Feb 16, 2020
    Configuration menu
    Copy the full SHA
    2f0a048 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2020

  1. Configuration menu
    Copy the full SHA
    86b939e View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2020

  1. Add abstraction for a CoffeeNet view model

    Multiple parts of CoffeeNet contribute UI/UX components to the final
    application. This abstraction allows to write these in a
    technology-agnostic way.
    punycode committed Feb 20, 2020
    Configuration menu
    Copy the full SHA
    332117b View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2020

  1. Configuration menu
    Copy the full SHA
    0bde7d6 View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2020

  1. Configuration menu
    Copy the full SHA
    8643961 View commit details
    Browse the repository at this point in the history
  2. Add ability to hook bean-defined security configurers globally

    To enable more CoffeeNet autoconfiguration possibilities, we need to
    hook into the process of defining global `SecurityConfigurer` beans,
    that are applied to instances of `WebSecurityConfigurerAdapter`.
    punycode committed Feb 23, 2020
    Configuration menu
    Copy the full SHA
    e80361a View commit details
    Browse the repository at this point in the history
  3. Auto-enable OAuth2 security if clients are configured

    This makes use of the feature from the previous commit, to automatically
    configure features on instances of `WebSecurityConfigurerAdapter`, if
    certain conditions are met. In this case, we auto-enable OAuth2.
    punycode committed Feb 23, 2020
    Configuration menu
    Copy the full SHA
    8a03c02 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    41f5f8f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d0981ca View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    bb1d211 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a8e7d6a View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    80f1d24 View commit details
    Browse the repository at this point in the history
  9. Move CoffeeNetSecurityAutoConfiguration to .servlet

    Mirroring `SecurityAutoConfiguration` from Spring Boot, this class will
    be used only for servlet based environments. We will later add a
    reactive variant.
    punycode committed Feb 23, 2020
    Configuration menu
    Copy the full SHA
    16f3f88 View commit details
    Browse the repository at this point in the history
  10. Add argument resolver infrastructure for CoffeeNetProfile

    In the previous CoffeeNet iteration a profile for the currently logged
    in user could be retrieved via an exposed service. Most of the time this
    feature is needed for frontend work. Therefore we implement this
    reworked implementation via the Spring mechanism of a
    `HandlerMethodArgumentResolver`.
    
    This commit adds the needed auto-configuration as also an implementation
    for OAuth2/OIDC.
    punycode committed Feb 23, 2020
    Configuration menu
    Copy the full SHA
    2dee569 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cf3cd5e View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    8576277 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    39b154d View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    465d05b View commit details
    Browse the repository at this point in the history
  15. Fix: CoffeeNetModel Map implementation not compliant

    The existing implementation was not exactly correct, having missing
    edge cases for equals/hashCode as also being prone to modification of
    the original map, when reusing the same builder.
    punycode committed Feb 23, 2020
    Configuration menu
    Copy the full SHA
    5e336a3 View commit details
    Browse the repository at this point in the history
  16. Make CoffeeNet profile auto-configuration depend on web security

    Since the whole profile concept is actually tied to authenticated users
    and CoffeeNet is meant to be used in the web context only, we can better
    infer, if profile support is needed, when depending on the security
    filter chain.
    punycode committed Feb 23, 2020
    Configuration menu
    Copy the full SHA
    93d1f6b View commit details
    Browse the repository at this point in the history
  17. Implement fallback profile mapper

    Having a fallback implementation of profile mapper is a good idea, to
    make CoffeeNetProfile available, even when authentication was made by a
    currently not supported variant. This is especially true for the
    development case, where working on an application doesn't necessarily
    makes OAuth2 providers available.
    punycode committed Feb 23, 2020
    Configuration menu
    Copy the full SHA
    572058b View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    35d9e8d View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    f5a6972 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    1da03d9 View commit details
    Browse the repository at this point in the history

Commits on Mar 7, 2020

  1. Merge pull request #68 from coffeenet/spring-oidc

    Migrate CoffeeNet Security to OIDC
    punycode authored Mar 7, 2020
    Configuration menu
    Copy the full SHA
    a0032fe View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2020

  1. Configuration menu
    Copy the full SHA
    6e97cfd View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2020

  1. Merge remote-tracking branch 'origin/master' into spring-2-rewrite

    This recreates the previous adaptions to the Maven based with the Gradle
    build integrated into `master` branch.
    punycode committed Apr 18, 2020
    Configuration menu
    Copy the full SHA
    98ded64 View commit details
    Browse the repository at this point in the history
  2. Remove the '-legacy' postfix from the legacy modules

    Since in Gradle we don't have the limition of a Maven multi module build
    that every project has to be a unique artifact, we can remove the
    `-legacy` postfix from all the projects in the `legacy/` subfolder.
    punycode committed Apr 18, 2020
    Configuration menu
    Copy the full SHA
    6f8cc80 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    dce08d0 View commit details
    Browse the repository at this point in the history
  4. Fix: Wrong dependencies on coffeenet-starter-discovery

    While we didn't touch the previous discovery mechanism in the rewrite
    yet, the starter involved was using the old Dalston.SR5 release of
    Spring Cloud, pulling in some undesirable dependencies in the process.
    
    We simply upgrade to current Hoxton.SR3 and use the correct dependency.
    punycode committed Apr 18, 2020
    Configuration menu
    Copy the full SHA
    cbbdac2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9b6df47 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2020

  1. Configuration menu
    Copy the full SHA
    453c0b7 View commit details
    Browse the repository at this point in the history
  2. [coffenet-platform-domain] Put stronger constraints on supported classes

    Since the `PrincipalCoffeeNetProfileMapper` is explicitly intended to
    work with implementation of `java.security.Principal` we can reflect
    this in the method signature.
    punycode committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    478373f View commit details
    Browse the repository at this point in the history
  3. [coffeenet-platform-domain] Restrict visibility of internals

    The `DefaultCoffeeNetProfile` is a default implementation, that cannot
    instantiated or subclassed and is only constructable by a builder. We
    move the builder to the actual `CoffeeNetProfile` interface and hide
    the default implementation at the package level.
    punycode committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    e955131 View commit details
    Browse the repository at this point in the history
  4. Exclude JUnit4 from test dependencies

    Since we want to encourage usage of JUnit 5 all across the CoffeeNet
    projects, we exclude it by default from the transitive dependencies of
    `spring-boot-starter-test`. This way JUnit 4 annotations and classes
    will not be available.
    punycode committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    820265f View commit details
    Browse the repository at this point in the history
  5. [coffeenet-platform-domain] Add JSON serialization hints

    Since we may want to serialize the domain interfaces to JSON, we should
    add consistent naming for the resulting JSON keys emitted.
    punycode committed Apr 19, 2020
    Configuration menu
    Copy the full SHA
    127374d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9b96f24 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2020

  1. Configuration menu
    Copy the full SHA
    5598f3b View commit details
    Browse the repository at this point in the history
  2. Move CoffeeNetProfileAutoConfiguration a level up

    In prepartion for WebFlux support, we move the configuration for the
    `CoffeeNetProfileMapper` into the parent package.
    punycode committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    9859229 View commit details
    Browse the repository at this point in the history
  3. Enable support for WebFlux in CoffeeNet instrumentation

    This commit adds auto-configuration for WebFlux based applications in
    the same manner, that servlet based applications are instrumented.
    Specifically it adds auto-configuration for OAuth2 authentication on all
    WebFlux `ServerHttpSecurity` instances and the method argument
    resolution of `CoffeeNetProfile` for those applications.
    punycode committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    f085d6c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9644c25 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0e9e60d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    440bd52 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #73 from coffeenet/spring-2-webflux

    Enable support for WebFlux in CoffeeNet instrumentation
    punycode authored Apr 27, 2020
    Configuration menu
    Copy the full SHA
    d2ac336 View commit details
    Browse the repository at this point in the history

Commits on May 24, 2020

  1. Publish SNAPSHOT for spring-2-rewrite to Sonatype OSS

    To ease prototyping features with the rewrite we start publishing the
    `spring-2-rewrite` branch to Sonatype OSS snapshot repository too.
    punycode committed May 24, 2020
    Configuration menu
    Copy the full SHA
    72934d9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a87a87e View commit details
    Browse the repository at this point in the history

Commits on May 30, 2020

  1. Configuration menu
    Copy the full SHA
    c0ac221 View commit details
    Browse the repository at this point in the history
  2. [coffeenet-dependencies] Automatic starter dependencies

    Instead of listing all `coffeenet-starter*` dependencies manually, we
    simply can add all starter artifacts by iterating over existing
    subprojects and adding those who match the name pattern.
    punycode committed May 30, 2020
    Configuration menu
    Copy the full SHA
    69fd5a1 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2020

  1. Build with Java 11

    We ensure in our build configuration to produce Java 8+ compatible
    artifacts. But Sonaqube is complaining if the Java version used for the
    build is 1.8, so we switch the build to actually use Java 11.
    punycode committed Jun 7, 2020
    Configuration menu
    Copy the full SHA
    3af74bc View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2020

  1. Configuration menu
    Copy the full SHA
    ffb90bb View commit details
    Browse the repository at this point in the history
  2. Bump Spring Cloud dependency to Hoxton.SR4 last supported version

    Spring Cloud Hoxton.SR5+ are now only supported on Spring Boot 2.3+.
    punycode committed Aug 2, 2020
    Configuration menu
    Copy the full SHA
    f3eda4e View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2021

  1. Configuration menu
    Copy the full SHA
    60c3fb4 View commit details
    Browse the repository at this point in the history