Replacing XML with Java configuration
This commit is contained in:
parent
bf0bdf50c1
commit
6edd5ffca7
|
@ -0,0 +1,179 @@
|
||||||
|
package eu.dnetlib.repo.manager.config;
|
||||||
|
|
||||||
|
import org.mitre.oauth2.model.ClientDetailsEntity.AuthMethod;
|
||||||
|
import org.mitre.oauth2.model.RegisteredClient;
|
||||||
|
import org.mitre.openid.connect.client.OIDCAuthenticationFilter;
|
||||||
|
import org.mitre.openid.connect.client.OIDCAuthenticationProvider;
|
||||||
|
import org.mitre.openid.connect.client.service.impl.*;
|
||||||
|
import org.mitre.openid.connect.config.ServerConfiguration;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
|
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||||
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||||
|
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
|
||||||
|
import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableWebSecurity
|
||||||
|
public class AaiSecurityConfiguration extends WebSecurityConfigurerAdapter {
|
||||||
|
|
||||||
|
@Value("${webapp.dev.front}")
|
||||||
|
private String logoutSuccessUrl;
|
||||||
|
|
||||||
|
@Value("${oidc.issuer}")
|
||||||
|
private String oidcIssuer;
|
||||||
|
|
||||||
|
@Value("${oidc.id}")
|
||||||
|
private String oidcId;
|
||||||
|
|
||||||
|
@Value("${oidc.secret}")
|
||||||
|
private String oidcSecret;
|
||||||
|
|
||||||
|
@Value("${oidc.dev.home}")
|
||||||
|
private String oidcDevHome;
|
||||||
|
|
||||||
|
@Value("${webapp.dev.front}")
|
||||||
|
private String webAppFrontEnd;
|
||||||
|
|
||||||
|
private Map<String, String> userRoles = new HashMap<String, String>(){{
|
||||||
|
put("urn:geant:openaire.eu:group:Super+Administrator#aai.openaire.eu", "ROLE_ADMIN");
|
||||||
|
put("urn:geant:openaire.eu:group:Content+Provider+Dashboard+Administrator#aai.openaire.eu","ROLE_PROVIDE_ADMIN");
|
||||||
|
}};
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Override
|
||||||
|
public AuthenticationManager authenticationManagerBean() throws Exception {
|
||||||
|
return authenticationManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
|
||||||
|
auth.authenticationProvider(openIdConnectAuthenticationProvider());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configure(HttpSecurity http) throws Exception {
|
||||||
|
http.csrf().disable()
|
||||||
|
.anonymous().disable()
|
||||||
|
.authorizeRequests()
|
||||||
|
.anyRequest().authenticated()
|
||||||
|
.and()
|
||||||
|
.httpBasic()
|
||||||
|
.authenticationEntryPoint(authenticationEntryPoint())
|
||||||
|
.and()
|
||||||
|
.logout().logoutUrl("/openid_logout")
|
||||||
|
.invalidateHttpSession(true)
|
||||||
|
.deleteCookies("openAIRESession")
|
||||||
|
.logoutSuccessUrl(logoutSuccessUrl)
|
||||||
|
.and()
|
||||||
|
.addFilterBefore(openIdConnectAuthenticationFilter(), AbstractPreAuthenticatedProcessingFilter.class)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public OIDCAuthenticationProvider openIdConnectAuthenticationProvider(){
|
||||||
|
OIDCAuthenticationProvider oidcProvider = new OIDCAuthenticationProvider();
|
||||||
|
oidcProvider.setAuthoritiesMapper(authoritiesMapper());
|
||||||
|
return oidcProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public OpenAireProviderAuthoritiesMapper authoritiesMapper(){
|
||||||
|
OpenAireProviderAuthoritiesMapper authoritiesMapper = new OpenAireProviderAuthoritiesMapper(userRoles);
|
||||||
|
return authoritiesMapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public StaticServerConfigurationService staticServerConfigurationService(){
|
||||||
|
StaticServerConfigurationService staticServerConfigurationService = new StaticServerConfigurationService();
|
||||||
|
Map<String, ServerConfiguration> servers = new HashMap<>();
|
||||||
|
servers.put(oidcIssuer, serverConfiguration());
|
||||||
|
staticServerConfigurationService.setServers(servers);
|
||||||
|
return staticServerConfigurationService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public StaticClientConfigurationService staticClientConfigurationService(){
|
||||||
|
StaticClientConfigurationService staticClientConfigurationService = new StaticClientConfigurationService();
|
||||||
|
Map<String, RegisteredClient> clients = new HashMap<>();
|
||||||
|
clients.put(oidcIssuer,registeredClient());
|
||||||
|
staticClientConfigurationService.setClients(clients);
|
||||||
|
return staticClientConfigurationService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public RegisteredClient registeredClient(){
|
||||||
|
RegisteredClient registeredClient = new RegisteredClient();
|
||||||
|
registeredClient.setClientId(oidcId);
|
||||||
|
registeredClient.setClientSecret(oidcSecret);
|
||||||
|
registeredClient.setScope(new HashSet<>(Collections.singletonList("openid")));
|
||||||
|
registeredClient.setTokenEndpointAuthMethod(AuthMethod.SECRET_BASIC);
|
||||||
|
registeredClient.setRedirectUris(new HashSet<>(Collections.singletonList(oidcDevHome)));
|
||||||
|
return registeredClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public StaticAuthRequestOptionsService staticAuthRequestOptionsService(){
|
||||||
|
return new StaticAuthRequestOptionsService();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public PlainAuthRequestUrlBuilder plainAuthRequestUrlBuilder(){
|
||||||
|
return new PlainAuthRequestUrlBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ServerConfiguration serverConfiguration(){
|
||||||
|
ServerConfiguration serverConfiguration = new ServerConfiguration();
|
||||||
|
serverConfiguration.setIssuer(oidcIssuer);
|
||||||
|
serverConfiguration.setAuthorizationEndpointUri(oidcIssuer+"authorize");
|
||||||
|
serverConfiguration.setTokenEndpointUri(oidcIssuer+"token");
|
||||||
|
serverConfiguration.setUserInfoUri(oidcIssuer+"userinfo");
|
||||||
|
serverConfiguration.setJwksUri(oidcIssuer+"jwk");
|
||||||
|
serverConfiguration.setRevocationEndpointUri(oidcIssuer+"revoke");
|
||||||
|
return serverConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public LoginUrlAuthenticationEntryPoint authenticationEntryPoint(){
|
||||||
|
return new LoginUrlAuthenticationEntryPoint("/openid_connect_login");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public OIDCAuthenticationFilter openIdConnectAuthenticationFilter() throws Exception {
|
||||||
|
OIDCAuthenticationFilter oidc = new OIDCAuthenticationFilter();
|
||||||
|
oidc.setAuthenticationManager(authenticationManagerBean());
|
||||||
|
oidc.setIssuerService(staticSingleIssuerService());
|
||||||
|
oidc.setServerConfigurationService(staticServerConfigurationService());
|
||||||
|
oidc.setClientConfigurationService(staticClientConfigurationService());
|
||||||
|
oidc.setAuthRequestOptionsService(staticAuthRequestOptionsService());
|
||||||
|
oidc.setAuthRequestUrlBuilder(plainAuthRequestUrlBuilder());
|
||||||
|
oidc.setAuthenticationSuccessHandler(frontEndRedirect());
|
||||||
|
return oidc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public StaticSingleIssuerService staticSingleIssuerService(){
|
||||||
|
StaticSingleIssuerService staticSingleIssuerService = new StaticSingleIssuerService();
|
||||||
|
staticSingleIssuerService.setIssuer(oidcIssuer);
|
||||||
|
return staticSingleIssuerService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(initMethod = "init")
|
||||||
|
public FrontEndLinkURIAuthenticationSuccessHandler frontEndRedirect(){
|
||||||
|
FrontEndLinkURIAuthenticationSuccessHandler frontEnd = new FrontEndLinkURIAuthenticationSuccessHandler();
|
||||||
|
frontEnd.setFrontEndURI(webAppFrontEnd);
|
||||||
|
return frontEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -53,3 +53,4 @@ public class CascadingPropertyLoader extends PropertyPlaceholderConfigurer imple
|
||||||
this.properties = properties;
|
this.properties = properties;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
package eu.dnetlib.repo.manager.config;
|
||||||
|
|
||||||
|
import org.apache.commons.dbcp.BasicDataSource;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||||
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableTransactionManagement
|
||||||
|
public class DatasourceConfiguration {
|
||||||
|
|
||||||
|
private static Logger LOGGER = Logger.getLogger(DatasourceConfiguration.class);
|
||||||
|
|
||||||
|
@Value("${repomanager.db.driverClassName}")
|
||||||
|
private String driverClassname;
|
||||||
|
|
||||||
|
@Value("${repomanager.db.url}")
|
||||||
|
private String URL;
|
||||||
|
|
||||||
|
@Value("${repomanager.db.username}")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
@Value("${repomanager.db.password}")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public BasicDataSource dataSource(){
|
||||||
|
BasicDataSource basicDataSource = new BasicDataSource();
|
||||||
|
basicDataSource.setDriverClassName(driverClassname);
|
||||||
|
basicDataSource.setUrl(URL);
|
||||||
|
basicDataSource.setUsername(username);
|
||||||
|
basicDataSource.setPassword(password);
|
||||||
|
basicDataSource.setMaxIdle(10);
|
||||||
|
basicDataSource.setMaxActive(100);
|
||||||
|
basicDataSource.setMaxWait(1000);
|
||||||
|
basicDataSource.setValidationQuery("SELECT 1;");
|
||||||
|
basicDataSource.setTestOnBorrow(true);
|
||||||
|
basicDataSource.setTestOnReturn(true);
|
||||||
|
basicDataSource.setTestWhileIdle(true);
|
||||||
|
basicDataSource.setTimeBetweenEvictionRunsMillis(1200000);
|
||||||
|
basicDataSource.setMinEvictableIdleTimeMillis(1800000);
|
||||||
|
basicDataSource.setMinEvictableIdleTimeMillis(5);
|
||||||
|
basicDataSource.setPoolPreparedStatements(true);
|
||||||
|
basicDataSource.setDefaultAutoCommit(true);
|
||||||
|
|
||||||
|
return basicDataSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public DataSourceTransactionManager txManager(){
|
||||||
|
DataSourceTransactionManager txManager = new DataSourceTransactionManager();
|
||||||
|
txManager.setDataSource(dataSource());
|
||||||
|
return txManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package eu.dnetlib.repo.manager.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
||||||
|
import org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration;
|
||||||
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableGlobalMethodSecurity(prePostEnabled = true,proxyTargetClass = true)
|
||||||
|
public class GlobalSecurityConfiguration extends GlobalMethodSecurityConfiguration {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public CommonsMultipartResolver multipartResolver(){
|
||||||
|
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
|
||||||
|
multipartResolver.setMaxUploadSize(268435456);
|
||||||
|
return multipartResolver;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
package eu.dnetlib.repo.manager.config;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
|
||||||
|
import org.springframework.context.annotation.*;
|
||||||
|
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
|
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
|
||||||
|
import org.springframework.session.web.http.CookieSerializer;
|
||||||
|
import org.springframework.session.web.http.DefaultCookieSerializer;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableRedisHttpSession
|
||||||
|
@EnableAspectJAutoProxy
|
||||||
|
@EnableCircuitBreaker
|
||||||
|
@PropertySource(value = {"classpath:application.properties"} )
|
||||||
|
@ComponentScan(basePackages = {
|
||||||
|
"org.eurocris.openaire.cris.validator.service",
|
||||||
|
"eu.dnetlib.repo.manager.*"})
|
||||||
|
public class RedisConfiguration {
|
||||||
|
|
||||||
|
private static Logger LOGGER = Logger.getLogger(RedisConfiguration.class);
|
||||||
|
|
||||||
|
@Value("${redis.host}")
|
||||||
|
private String host;
|
||||||
|
|
||||||
|
@Value("${redis.port:6379}")
|
||||||
|
private String port;
|
||||||
|
|
||||||
|
@Value("${redis.password}")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@Value("${aai.mode}")
|
||||||
|
private String aai_mode;
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
private void init(){
|
||||||
|
LOGGER.info(String.format("Redis : %s Port : %s Password : %s",host,port,password));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public JedisConnectionFactory connectionFactory() {
|
||||||
|
LOGGER.info(String.format("Redis : %s Port : %s Password : %s",host,port,password));
|
||||||
|
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
|
||||||
|
jedisConnectionFactory.setHostName(host);
|
||||||
|
jedisConnectionFactory.setPort(Integer.parseInt(port));
|
||||||
|
jedisConnectionFactory.setUsePool(true);
|
||||||
|
if(password != null) jedisConnectionFactory.setPassword(password);
|
||||||
|
return jedisConnectionFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public CookieSerializer cookieSerializer() {
|
||||||
|
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
|
||||||
|
serializer.setCookieName("openAIRESession");
|
||||||
|
serializer.setCookiePath("/");
|
||||||
|
if(aai_mode.equalsIgnoreCase("production") || aai_mode.equalsIgnoreCase("beta"))
|
||||||
|
serializer.setDomainName(".openaire.eu");
|
||||||
|
// serializer.setDomainName(".athenarc.gr");
|
||||||
|
LOGGER.info("Serializer : " + serializer);
|
||||||
|
return serializer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public RestTemplate restTemplate() {
|
||||||
|
RestTemplate restTemplate = new RestTemplate();
|
||||||
|
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
|
||||||
|
HttpHeaders httpHeaders = new HttpHeaders();
|
||||||
|
httpHeaders.set("Content-Type", "application/json");
|
||||||
|
return restTemplate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -32,7 +32,6 @@ import java.util.Map;
|
||||||
@Service("piwikService")
|
@Service("piwikService")
|
||||||
public class PiWikServiceImpl implements PiWikService {
|
public class PiWikServiceImpl implements PiWikService {
|
||||||
|
|
||||||
@Qualifier("repomanager.dataSource")
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DataSource dataSource;
|
private DataSource dataSource;
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<context:annotation-config/>
|
<context:annotation-config/>
|
||||||
<context:component-scan base-package="eu.dnetlib.repo.manager.service.*"/>
|
<context:component-scan base-package="eu.dnetlib.repo.manager.service.*"/>
|
||||||
<tx:annotation-driven transaction-manager="txManager"/>
|
|
||||||
|
|
||||||
<bean class="eu.dnetlib.repo.manager.config.CascadingPropertyLoader"
|
<bean class="eu.dnetlib.repo.manager.config.CascadingPropertyLoader"
|
||||||
id="propertyLoader">
|
id="propertyLoader">
|
||||||
|
@ -29,39 +28,15 @@
|
||||||
<value>classpath*:/application.properties</value>
|
<value>classpath*:/application.properties</value>
|
||||||
<value>classpath*:email-texts.properties</value>
|
<value>classpath*:email-texts.properties</value>
|
||||||
|
|
||||||
<!-- <value>classpath*:dnet-site-wizard.properties</value>-->
|
<!-- <value>classpath*:dnet-site-wizard.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-site-override.properties</value>-->
|
<!-- <value>classpath*:dnet-site-override.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-wizard.properties</value>-->
|
<!-- <value>classpath*:dnet-wizard.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-override.properties</value>-->
|
<!-- <value>classpath*:dnet-override.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-validator-wizard.properties</value>-->
|
<!-- <value>classpath*:dnet-validator-wizard.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-validator-override.properties</value>-->
|
<!-- <value>classpath*:dnet-validator-override.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-site-force-override.properties</value>-->
|
<!-- <value>classpath*:dnet-site-force-override.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-force-override.properties</value>-->
|
<!-- <value>classpath*:dnet-force-override.properties</value>-->
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="repomanager.dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
|
|
||||||
<property name="driverClassName" value="${repomanager.db.driverClassName}" />
|
|
||||||
<property name="url" value="${repomanager.db.url}" />
|
|
||||||
<property name="username" value="${repomanager.db.username}" />
|
|
||||||
<property name="password" value="${repomanager.db.password}" />
|
|
||||||
<property name="maxIdle" value="10" />
|
|
||||||
<property name="maxActive" value="100" />
|
|
||||||
<property name="maxWait" value="10000" />
|
|
||||||
<property name="validationQuery" value="SELECT 1;" />
|
|
||||||
<property name="testOnBorrow" value="true" />
|
|
||||||
<property name="testOnReturn" value="true" />
|
|
||||||
<property name="testWhileIdle" value="true" />
|
|
||||||
<property name="timeBetweenEvictionRunsMillis" value="1200000" />
|
|
||||||
<property name="minEvictableIdleTimeMillis" value="1800000" />
|
|
||||||
<property name="numTestsPerEvictionRun" value="5" />
|
|
||||||
<property name="poolPreparedStatements" value="true" />
|
|
||||||
<property name="defaultAutoCommit" value="true" />
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
|
||||||
<property name="dataSource" ref="repomanager.dataSource"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
</beans>
|
</beans>
|
|
@ -141,7 +141,7 @@ oidc.secret=AMQtGlbTXNjwjhF0st28LmM6V0XypMdaVS7tJmGuYFlmH36iIv4t7tVqYuLYrNPkhnZ_
|
||||||
search.api.baseAddress=https://beta.services.openaire.eu/search/v2/api
|
search.api.baseAddress=https://beta.services.openaire.eu/search/v2/api
|
||||||
search.api.usagestats=https://services.openaire.eu/usagestats
|
search.api.usagestats=https://services.openaire.eu/usagestats
|
||||||
search.api.usageEvents=http://beta.lbs.openaire.eu:8080/ajax/summary
|
search.api.usageEvents=http://beta.lbs.openaire.eu:8080/ajax/summary
|
||||||
api.baseAddress=http://beta.services.openaire.eu/openaire
|
api.baseAddress=https://dev-openaire.d4science.org/openaire
|
||||||
services.repo-manager.baseUrl=http://${container.hostname}:${container.port}/${container.context}
|
services.repo-manager.baseUrl=http://${container.hostname}:${container.port}/${container.context}
|
||||||
services.repo-manager.adminEmail=antleb@di.uoa.gr
|
services.repo-manager.adminEmail=antleb@di.uoa.gr
|
||||||
services.repo-manager.repository.testing.mode=false
|
services.repo-manager.repository.testing.mode=false
|
||||||
|
|
|
@ -1,157 +0,0 @@
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns:security="http://www.springframework.org/schema/security"
|
|
||||||
xmlns:util="http://www.springframework.org/schema/util"
|
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/security
|
|
||||||
http://www.springframework.org/schema/security/spring-security-3.2.xsd
|
|
||||||
http://www.springframework.org/schema/beans
|
|
||||||
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
|
|
||||||
http://www.springframework.org/schema/util
|
|
||||||
http://www.springframework.org/schema/util/spring-util-4.1.xsd"
|
|
||||||
default-autowire="byType">
|
|
||||||
|
|
||||||
|
|
||||||
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
|
|
||||||
<property name="maxUploadSize" value="268435456"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<!--<bean id="webexpressionHandler"
|
|
||||||
class="org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler"/>-->
|
|
||||||
|
|
||||||
<security:global-method-security pre-post-annotations="enabled" proxy-target-class="true" authentication-manager-ref="authenticationManager"/>
|
|
||||||
|
|
||||||
<security:http auto-config="false" use-expressions="true"
|
|
||||||
disable-url-rewriting="true" entry-point-ref="authenticationEntryPoint"
|
|
||||||
pattern="/**">
|
|
||||||
|
|
||||||
<security:custom-filter before="PRE_AUTH_FILTER" ref="openIdConnectAuthenticationFilter" />
|
|
||||||
|
|
||||||
<security:logout logout-url="/openid_logout" invalidate-session="true"
|
|
||||||
delete-cookies="openAIRESession" logout-success-url="${webapp.dev.front}"/>
|
|
||||||
|
|
||||||
</security:http>
|
|
||||||
|
|
||||||
|
|
||||||
<bean id="authenticationEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint" >
|
|
||||||
<constructor-arg type="java.lang.String" value="/openid_connect_login"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<security:authentication-manager alias="authenticationManager">
|
|
||||||
<security:authentication-provider ref="openIdConnectAuthenticationProvider" />
|
|
||||||
</security:authentication-manager>
|
|
||||||
|
|
||||||
<bean id="openIdConnectAuthenticationProvider" class="org.mitre.openid.connect.client.OIDCAuthenticationProvider">
|
|
||||||
<property name="authoritiesMapper">
|
|
||||||
<bean class="eu.dnetlib.repo.manager.config.OpenAireProviderAuthoritiesMapper">
|
|
||||||
<constructor-arg name="userRoles" ref="userRoles"/>
|
|
||||||
</bean>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<util:map id="userRoles">
|
|
||||||
<entry key="urn:geant:openaire.eu:group:Super+Administrator#aai.openaire.eu" value="ROLE_ADMIN"/>
|
|
||||||
<entry key="urn:geant:openaire.eu:group:Content+Provider+Dashboard+Administrator#aai.openaire.eu" value="ROLE_PROVIDE_ADMIN"/>
|
|
||||||
</util:map>
|
|
||||||
|
|
||||||
|
|
||||||
<bean class="eu.dnetlib.repo.manager.config.FrontEndLinkURIAuthenticationSuccessHandler" id="frontEndRedirect"
|
|
||||||
init-method="init">
|
|
||||||
<property name="frontEndURI" value="${webapp.dev.front}"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
-
|
|
||||||
- The authentication filter
|
|
||||||
-
|
|
||||||
-->
|
|
||||||
<bean id="openIdConnectAuthenticationFilter" class="org.mitre.openid.connect.client.OIDCAuthenticationFilter">
|
|
||||||
<property name="authenticationManager" ref="authenticationManager" />
|
|
||||||
|
|
||||||
<property name="issuerService" ref="staticIssuerService" />
|
|
||||||
<property name="serverConfigurationService" ref="staticServerConfigurationService" />
|
|
||||||
<property name="clientConfigurationService" ref="staticClientConfigurationService" />
|
|
||||||
<property name="authRequestOptionsService" ref="staticAuthRequestOptionsService" />
|
|
||||||
<property name="authRequestUrlBuilder" ref="plainAuthRequestUrlBuilder" />
|
|
||||||
<property name="authenticationSuccessHandler" ref="frontEndRedirect"/>
|
|
||||||
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Static issuer service, returns the same issuer for every request.
|
|
||||||
-->
|
|
||||||
<bean class="org.mitre.openid.connect.client.service.impl.StaticSingleIssuerService" id="staticIssuerService">
|
|
||||||
<property name="issuer" value="${oidc.issuer}" />
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Dynamic server configuration, fetches the server's information using OIDC Discovery.
|
|
||||||
-->
|
|
||||||
<bean class="org.mitre.openid.connect.client.service.impl.StaticServerConfigurationService" id="staticServerConfigurationService">
|
|
||||||
<property name="servers">
|
|
||||||
<map>
|
|
||||||
<entry key="${oidc.issuer}">
|
|
||||||
<bean class="org.mitre.openid.connect.config.ServerConfiguration">
|
|
||||||
<property name="issuer" value="${oidc.issuer}" />
|
|
||||||
<property name="authorizationEndpointUri" value="${oidc.issuer}authorize" />
|
|
||||||
<property name="tokenEndpointUri" value="${oidc.issuer}token" />
|
|
||||||
<property name="userInfoUri" value="${oidc.issuer}userinfo" />
|
|
||||||
<property name="jwksUri" value="${oidc.issuer}jwk" />
|
|
||||||
<property name="revocationEndpointUri" value="${oidc.issuer}revoke" />
|
|
||||||
</bean>
|
|
||||||
</entry>
|
|
||||||
</map>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Static Client Configuration. Configures a client statically by storing configuration on a per-issuer basis.
|
|
||||||
-->
|
|
||||||
<bean class="org.mitre.openid.connect.client.service.impl.StaticClientConfigurationService" id="staticClientConfigurationService">
|
|
||||||
<property name="clients">
|
|
||||||
<map>
|
|
||||||
<entry key="${oidc.issuer}">
|
|
||||||
<bean class="org.mitre.oauth2.model.RegisteredClient">
|
|
||||||
<property name="clientId" value="${oidc.id}" />
|
|
||||||
<property name="clientSecret" value="${oidc.secret}" />
|
|
||||||
<property name="scope">
|
|
||||||
<set value-type="java.lang.String">
|
|
||||||
<value>openid</value>
|
|
||||||
</set>
|
|
||||||
</property>
|
|
||||||
<property name="tokenEndpointAuthMethod" value="SECRET_BASIC" />
|
|
||||||
<property name="redirectUris">
|
|
||||||
<set>
|
|
||||||
<value>${oidc.dev.home}</value>
|
|
||||||
</set>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
</entry>
|
|
||||||
</map>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
-
|
|
||||||
- Auth request options service: returns the optional components of the request
|
|
||||||
-
|
|
||||||
-->
|
|
||||||
<bean class="org.mitre.openid.connect.client.service.impl.StaticAuthRequestOptionsService" id="staticAuthRequestOptionsService">
|
|
||||||
<property name="options">
|
|
||||||
<map>
|
|
||||||
<!-- Entries in this map are sent as key-value parameters to the auth request -->
|
|
||||||
<!--
|
|
||||||
<entry key="display" value="page" />
|
|
||||||
<entry key="max_age" value="30" />
|
|
||||||
<entry key="prompt" value="none" />
|
|
||||||
-->
|
|
||||||
</map>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Plain authorization request builder, puts all options as query parameters on the GET request
|
|
||||||
-->
|
|
||||||
<bean class="org.mitre.openid.connect.client.service.impl.PlainAuthRequestUrlBuilder" id="plainAuthRequestUrlBuilder" />
|
|
||||||
</beans>
|
|
|
@ -67,31 +67,6 @@
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="repomanager.dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
|
|
||||||
<property name="driverClassName" value="${repomanager.db.driverClassName}" />
|
|
||||||
<property name="url" value="${repomanager.db.url}" />
|
|
||||||
<property name="username" value="${repomanager.db.username}" />
|
|
||||||
<property name="password" value="${repomanager.db.password}" />
|
|
||||||
<property name="maxIdle" value="10" />
|
|
||||||
<property name="maxActive" value="100" />
|
|
||||||
<property name="maxWait" value="10000" />
|
|
||||||
<property name="validationQuery" value="SELECT 1;" />
|
|
||||||
<property name="testOnBorrow" value="true" />
|
|
||||||
<property name="testOnReturn" value="true" />
|
|
||||||
<property name="testWhileIdle" value="true" />
|
|
||||||
<property name="timeBetweenEvictionRunsMillis" value="1200000" />
|
|
||||||
<property name="minEvictableIdleTimeMillis" value="1800000" />
|
|
||||||
<property name="numTestsPerEvictionRun" value="5" />
|
|
||||||
<property name="poolPreparedStatements" value="true" />
|
|
||||||
<property name="defaultAutoCommit" value="true" />
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<tx:annotation-driven transaction-manager="txManager"/>
|
|
||||||
|
|
||||||
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
|
||||||
<property name="dataSource" ref="repomanager.dataSource"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
|
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
|
||||||
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
|
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
|
||||||
<bean class="eu.dnetlib.repo.manager.config.SwaggerConfig"/>
|
<bean class="eu.dnetlib.repo.manager.config.SwaggerConfig"/>
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
<param-name>contextConfigLocation</param-name>
|
<param-name>contextConfigLocation</param-name>
|
||||||
<param-value>
|
<param-value>
|
||||||
/WEB-INF/applicationContext.xml
|
/WEB-INF/applicationContext.xml
|
||||||
/WEB-INF/aai-security.xml
|
|
||||||
</param-value>
|
</param-value>
|
||||||
</context-param>
|
</context-param>
|
||||||
<context-param>
|
<context-param>
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
<context:annotation-config/>
|
<context:annotation-config/>
|
||||||
<context:component-scan base-package="eu.dnetlib.repo.manager.service.*"/>
|
<context:component-scan base-package="eu.dnetlib.repo.manager.service.*"/>
|
||||||
<tx:annotation-driven transaction-manager="txManager"/>
|
|
||||||
|
|
||||||
<bean class="eu.dnetlib.repo.manager.config.CascadingPropertyLoader"
|
<bean class="eu.dnetlib.repo.manager.config.CascadingPropertyLoader"
|
||||||
id="propertyLoader">
|
id="propertyLoader">
|
||||||
|
@ -27,41 +26,17 @@
|
||||||
<value>classpath*:/eu/**/springContext-*.properties</value>
|
<value>classpath*:/eu/**/springContext-*.properties</value>
|
||||||
|
|
||||||
<value>classpath*:/application.properties</value>
|
<value>classpath*:/application.properties</value>
|
||||||
<value>classpath*:/email-texts.properties</value>
|
<value>classpath*:email-texts.properties</value>
|
||||||
|
|
||||||
<!-- <value>classpath*:dnet-site-wizard.properties</value>-->
|
<!-- <value>classpath*:dnet-site-wizard.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-site-override.properties</value>-->
|
<!-- <value>classpath*:dnet-site-override.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-wizard.properties</value>-->
|
<!-- <value>classpath*:dnet-wizard.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-override-new.properties</value>-->
|
<!-- <value>classpath*:dnet-override.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-validator-wizard.properties</value>-->
|
<!-- <value>classpath*:dnet-validator-wizard.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-validator-override.properties</value>-->
|
<!-- <value>classpath*:dnet-validator-override.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-site-force-override.properties</value>-->
|
<!-- <value>classpath*:dnet-site-force-override.properties</value>-->
|
||||||
<!-- <value>classpath*:dnet-force-override.properties</value>-->
|
<!-- <value>classpath*:dnet-force-override.properties</value>-->
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="repomanager.dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
|
|
||||||
<property name="driverClassName" value="${repomanager.db.driverClassName}" />
|
|
||||||
<property name="url" value="${repomanager.db.url}" />
|
|
||||||
<property name="username" value="${repomanager.db.username}" />
|
|
||||||
<property name="password" value="${repomanager.db.password}" />
|
|
||||||
<property name="maxIdle" value="10" />
|
|
||||||
<property name="maxActive" value="100" />
|
|
||||||
<property name="maxWait" value="10000" />
|
|
||||||
<property name="validationQuery" value="SELECT 1;" />
|
|
||||||
<property name="testOnBorrow" value="true" />
|
|
||||||
<property name="testOnReturn" value="true" />
|
|
||||||
<property name="testWhileIdle" value="true" />
|
|
||||||
<property name="timeBetweenEvictionRunsMillis" value="1200000" />
|
|
||||||
<property name="minEvictableIdleTimeMillis" value="1800000" />
|
|
||||||
<property name="numTestsPerEvictionRun" value="5" />
|
|
||||||
<property name="poolPreparedStatements" value="true" />
|
|
||||||
<property name="defaultAutoCommit" value="true" />
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
|
||||||
<property name="dataSource" ref="repomanager.dataSource"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
</beans>
|
</beans>
|
|
@ -67,33 +67,4 @@
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="repomanager.dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
|
|
||||||
<property name="driverClassName" value="${repomanager.db.driverClassName}" />
|
|
||||||
<property name="url" value="${repomanager.db.url}" />
|
|
||||||
<property name="username" value="${repomanager.db.username}" />
|
|
||||||
<property name="password" value="${repomanager.db.password}" />
|
|
||||||
<property name="maxIdle" value="10" />
|
|
||||||
<property name="maxActive" value="100" />
|
|
||||||
<property name="maxWait" value="10000" />
|
|
||||||
<property name="validationQuery" value="SELECT 1;" />
|
|
||||||
<property name="testOnBorrow" value="true" />
|
|
||||||
<property name="testOnReturn" value="true" />
|
|
||||||
<property name="testWhileIdle" value="true" />
|
|
||||||
<property name="timeBetweenEvictionRunsMillis" value="1200000" />
|
|
||||||
<property name="minEvictableIdleTimeMillis" value="1800000" />
|
|
||||||
<property name="numTestsPerEvictionRun" value="5" />
|
|
||||||
<property name="poolPreparedStatements" value="true" />
|
|
||||||
<property name="defaultAutoCommit" value="true" />
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<tx:annotation-driven transaction-manager="txManager"/>
|
|
||||||
|
|
||||||
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
|
||||||
<property name="dataSource" ref="repomanager.dataSource"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
|
|
||||||
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
|
|
||||||
<bean class="eu.dnetlib.repo.manager.config.SwaggerConfig"/>
|
|
||||||
|
|
||||||
</beans>
|
</beans>
|
Loading…
Reference in New Issue