login-service/src/main/java/eu/dnetlib/loginservice/security/initiliazers/Configurations.java

50 lines
1.9 KiB
Java

package eu.dnetlib.loginservice.security.initiliazers;
import eu.dnetlib.loginservice.properties.Properties;
import eu.dnetlib.loginservice.utils.ScopeReader;
import org.mitre.oauth2.model.ClientDetailsEntity;
import org.mitre.oauth2.model.RegisteredClient;
import org.mitre.openid.connect.config.ServerConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Collections;
@Configuration
public class Configurations {
private final Properties properties;
private final ScopeReader scopeReader;
@Autowired
public Configurations(Properties properties, ScopeReader scopeReader) {
this.properties = properties;
this.scopeReader = scopeReader;
}
@Bean
public ServerConfiguration serverConfiguration() {
String issuer = properties.getOidc().getIssuer();
ServerConfiguration serverConfiguration = new ServerConfiguration();
serverConfiguration.setIssuer(issuer);
serverConfiguration.setAuthorizationEndpointUri(issuer + "authorize");
serverConfiguration.setTokenEndpointUri(issuer + "token");
serverConfiguration.setUserInfoUri(issuer + "userinfo");
serverConfiguration.setJwksUri(issuer + "jwk");
serverConfiguration.setRevocationEndpointUri(issuer + "revoke");
return serverConfiguration;
}
@Bean
public RegisteredClient registeredClient() {
RegisteredClient client = new RegisteredClient();
client.setClientId(properties.getOidc().getId());
client.setClientSecret(properties.getOidc().getSecret());
client.setScope(scopeReader.getScopes());
client.setTokenEndpointAuthMethod(ClientDetailsEntity.AuthMethod.SECRET_BASIC);
client.setRedirectUris(Collections.singleton(properties.getOidc().getHome()));
return client;
}
}