62 lines
2.5 KiB
Java
62 lines
2.5 KiB
Java
package eu.dnetlib.loginservice.security.initiliazers;
|
|
|
|
import com.sun.org.apache.xpath.internal.operations.Bool;
|
|
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.beans.factory.annotation.Value;
|
|
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);
|
|
Boolean keycloak = properties.getKeycloak();
|
|
|
|
if(keycloak) {
|
|
serverConfiguration.setAuthorizationEndpointUri(issuer + "/protocol/openid-connect/auth");
|
|
serverConfiguration.setTokenEndpointUri(issuer + "/protocol/openid-connect/token");
|
|
serverConfiguration.setUserInfoUri(issuer + "/protocol/openid-connect/userinfo");
|
|
serverConfiguration.setJwksUri(issuer + "/protocol/openid-connect/certs");
|
|
} else {
|
|
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;
|
|
}
|
|
}
|