Persist granted user consent

This commit is contained in:
Andreas Svanberg 2025-04-23 23:47:27 +02:00
parent 2ebf8c649d
commit e79387bc2e
Signed by: ansv7779
GPG Key ID: 729B051CFFD42F92
2 changed files with 19 additions and 0 deletions
src/main
java/se/su/dsv/oauth2
resources/db/migration

@ -3,8 +3,12 @@ package se.su.dsv.oauth2;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.simple.JdbcClient;
import org.springframework.security.oauth2.server.authorization.JdbcOAuth2AuthorizationConsentService;
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationConsentService;
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService;
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
@Configuration
@Profile("!embedded")
@ -18,4 +22,12 @@ public class PersistentConfiguration {
public OAuth2AuthorizationService authorizationService(JdbcClient jdbcClient) {
return new SerializingJDBCOAuth2AuthorizationService(jdbcClient);
}
@Bean
public OAuth2AuthorizationConsentService authorizationConsentService(
JdbcOperations jdbcOperations,
RegisteredClientRepository registeredClientRepository)
{
return new JdbcOAuth2AuthorizationConsentService(jdbcOperations, registeredClientRepository);
}
}

@ -0,0 +1,7 @@
CREATE TABLE oauth2_authorization_consent
(
registered_client_id varchar(100) NOT NULL,
principal_name varchar(200) NOT NULL,
authorities varchar(1000) NOT NULL,
PRIMARY KEY (registered_client_id, principal_name)
);