ch4mpy / spring-addons

Ease spring OAuth2 resource-servers configuration and testing
Apache License 2.0
559 stars 90 forks source link

(Not a bug) Really excellent work! #22

Open teuber789 opened 3 years ago

teuber789 commented 3 years ago

I happened upon this repo while looking for a way to mock Keycloak tokens in Spring MVC controller tests. Your WithMockKeycloakAuth annotation worked like a charm and saved me a ton of hassle. Just wanted to post a little note saying thanks again and keep up the good work!

(This isn't exactly a bug...but I wasn't sure where else to put it :/ )

ch4mpy commented 3 years ago

@teuber789 much appreciated. Thanks.

If you like the libs, please consider giving a star. Same for the people you work with.

Seams stupid, but reaching 150 stars could open the door to publishing on Baeldung and greatly widen users community.

razeelmohammed commented 2 years ago

The Spring Boot 3 Keyclock examples are a real life saver. Good work team.

lArtiquel commented 1 year ago

@ch4mpy I agree that this stuff should be on Baeldung already. I found it by accident after also accidentally finding that the Keycloak adapters are now deprecated and after hours of writing crutch configurations with Spring OAuth2. And I think there are more people like me who found this solution by accident. Anyway, thanks for sharing your solution!

ch4mpy commented 1 year ago

@lArtiquel it is a work in progress. Baeldung required 150 popularity (stars plus forks) before I could submit articles about this libs and I reached it last month.

I have submitted a tutorial about mocking OAuth2 identities during tests which is in review (this a rather long process with pretty strict editorial rules I have to learn and comply with).

I hope one about portable resource-server configuration will follow.

JonasMArnold commented 1 year ago

Gave this one a star as well! Saved me a lot of pain in many regards.

Thanks @ch4mpy for this great repository as well as your active StackOverflow presence!

ch4mpy commented 1 year ago

@JonasMArnold thank you for the positive feedback, it is always pleasant to read.

I was pretty busy at that moment with two major upgrades:

Please make sure you give those two a try, I'm sure it is worth the effort.

Makintos commented 1 year ago

Another star! Thank you @ch4mpy

One question: BFF + multitenant dynamic, is it possible?

spring:
  security:
    oauth2:
      client:
        provider:
          keycloak:
            issuer-uri: ${issuer}
            user-name-attribute: ${user-name-attribute}
        registration:
          keycloak:
            provider: keycloak
            client-id: ${client-id}
            client-secret: ${client-secret}
            authorization-grant-type: authorization_code
            scope:
            - openid
            - profile
            - email
            - offline_access
            - roles
ch4mpy commented 1 year ago

Configuration properties as you define in your yaml are "static". Spring-addons can hardly produce "dynamic" configuration from it.

What you might consider is spinning a BFF instance for each of your tenant: when you add a tenant, you probably have declared a dedicated OAuth2 client in your authorization server for it and should be able to generate the Spring configuration yaml for a new BFF instance dedicated to this new tenant. Each BFF would be a "static" single-tenant OAuth2 client with a single login option.