diff --git a/maxkey-core/src/main/java/org/maxkey/authn/support/rememberme/RedisRemeberMeService.java b/maxkey-core/src/main/java/org/maxkey/authn/support/rememberme/RedisRemeberMeService.java index b907a2149..f9e959331 100644 --- a/maxkey-core/src/main/java/org/maxkey/authn/support/rememberme/RedisRemeberMeService.java +++ b/maxkey-core/src/main/java/org/maxkey/authn/support/rememberme/RedisRemeberMeService.java @@ -41,6 +41,11 @@ public class RedisRemeberMeService extends AbstractRemeberMeService { conn.close(); } + public RedisRemeberMeService(RedisConnectionFactory connectionFactory) { + super(); + this.connectionFactory = connectionFactory; + } + public void setConnectionFactory(RedisConnectionFactory connectionFactory) { this.connectionFactory = connectionFactory; } diff --git a/maxkey-core/src/main/java/org/maxkey/autoconfigure/ApplicationAutoConfiguration.java b/maxkey-core/src/main/java/org/maxkey/autoconfigure/ApplicationAutoConfiguration.java index 0c701e31c..a409178d3 100644 --- a/maxkey-core/src/main/java/org/maxkey/autoconfigure/ApplicationAutoConfiguration.java +++ b/maxkey-core/src/main/java/org/maxkey/autoconfigure/ApplicationAutoConfiguration.java @@ -5,10 +5,17 @@ import java.io.IOException; import javax.sql.DataSource; import org.maxkey.authn.RealmAuthenticationProvider; import org.maxkey.authn.SavedRequestAwareAuthenticationSuccessHandler; +import org.maxkey.authn.support.rememberme.AbstractRemeberMeService; +import org.maxkey.authn.support.rememberme.InMemoryRemeberMeService; +import org.maxkey.authn.support.rememberme.JdbcRemeberMeService; +import org.maxkey.authn.support.rememberme.RedisRemeberMeService; +import org.maxkey.crypto.keystore.KeyStoreLoader; import org.maxkey.crypto.password.PasswordReciprocal; +import org.maxkey.persistence.redis.RedisConnectionFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -16,11 +23,16 @@ import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.PropertySource; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; + @Configuration @PropertySource("classpath:/application.properties") +@PropertySource("classpath:/config/applicationConfig.properties") public class ApplicationAutoConfiguration implements InitializingBean { private static final Logger _logger = LoggerFactory.getLogger(ApplicationAutoConfiguration.class); @@ -77,9 +89,85 @@ public class ApplicationAutoConfiguration implements InitializingBean { } @Bean(name = "transactionManager") - DataSourceTransactionManager transactionManager(DataSource dataSource) { + public DataSourceTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } + + /** + * Authentication Password Encoder . + * @return + */ + @Bean(name = "passwordEncoder") + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + + /** + * remeberMeService . + * @return + */ + @Bean(name = "remeberMeService") + public AbstractRemeberMeService remeberMeService( + @Value("${config.server.persistence}") int persistence, + @Value("${config.login.remeberme.validity}") int validity, + JdbcTemplate jdbcTemplate, + RedisConnectionFactory jedisConnectionFactory) { + AbstractRemeberMeService remeberMeService = null; + if (persistence == 0) { + remeberMeService = new InMemoryRemeberMeService(); + _logger.debug("InMemoryRemeberMeService"); + } else if (persistence == 1) { + remeberMeService = new JdbcRemeberMeService(jdbcTemplate); + _logger.debug("JdbcRemeberMeService"); + } else if (persistence == 2) { + remeberMeService = new RedisRemeberMeService(jedisConnectionFactory); + _logger.debug("RedisRemeberMeService"); + } + return remeberMeService; + } + + /** + * keyStoreLoader . + * @return + */ + @Bean(name = "keyStoreLoader") + public KeyStoreLoader keyStoreLoader( + @Value("${config.saml.v20.idp.issuing.entity.id}") String entityName, + @Value("${config.saml.v20.idp.keystore.password}") String keystorePassword, + @Value("${config.saml.v20.idp.keystore}") Resource keystoreFile) { + KeyStoreLoader keyStoreLoader = new KeyStoreLoader(); + keyStoreLoader.setEntityName(entityName); + keyStoreLoader.setKeystorePassword(keystorePassword); + keyStoreLoader.setKeystoreFile(keystoreFile); + return keyStoreLoader; + } + + /** + * spKeyStoreLoader . + * @return + */ + @Bean(name = "spKeyStoreLoader") + public KeyStoreLoader spKeyStoreLoader( + @Value("${config.saml.v20.sp.issuing.entity.id}") String entityName, + @Value("${config.saml.v20.sp.keystore.password}") String keystorePassword, + @Value("${config.saml.v20.sp.keystore}") Resource keystoreFile) { + KeyStoreLoader keyStoreLoader = new KeyStoreLoader(); + keyStoreLoader.setEntityName(entityName); + keyStoreLoader.setKeystorePassword(keystorePassword); + keyStoreLoader.setKeystoreFile(keystoreFile); + return keyStoreLoader; + } + + /** + * spKeyStoreLoader . + * @return + */ + @Bean(name = "spIssuingEntityName") + public String spIssuingEntityName( + @Value("${config.saml.v20.sp.issuing.entity.id}") String spIssuingEntityName) { + return spIssuingEntityName; + } + @Override public void afterPropertiesSet() throws Exception { diff --git a/maxkey-core/src/main/java/org/maxkey/autoconfigure/JwtAuthnAutoConfiguration.java b/maxkey-core/src/main/java/org/maxkey/autoconfigure/JwtAuthnAutoConfiguration.java new file mode 100644 index 000000000..25be9b359 --- /dev/null +++ b/maxkey-core/src/main/java/org/maxkey/autoconfigure/JwtAuthnAutoConfiguration.java @@ -0,0 +1,122 @@ +package org.maxkey.autoconfigure; + +import com.nimbusds.jose.JOSEException; +import com.nimbusds.jose.JWEAlgorithm; +import java.net.URI; +import java.security.NoSuchAlgorithmException; +import java.security.spec.InvalidKeySpecException; +import org.maxkey.authn.support.jwt.JwtLoginService; +import org.maxkey.config.oidc.OIDCProviderMetadataDetails; +import org.maxkey.crypto.jose.keystore.JWKSetKeyStore; +import org.maxkey.crypto.jwt.encryption.service.impl.DefaultJwtEncryptionAndDecryptionService; +import org.maxkey.crypto.jwt.signer.service.impl.DefaultJwtSigningAndValidationService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.io.ClassPathResource; + + +@Configuration +@PropertySource("classpath:/application.properties") +@PropertySource("classpath:/config/applicationConfig.properties") +public class JwtAuthnAutoConfiguration implements InitializingBean { + private static final Logger _logger = LoggerFactory.getLogger(JwtAuthnAutoConfiguration.class); + + /** + * OIDCProviderMetadataDetails. + * Self-issued Provider Metadata + * http://openid.net/specs/openid-connect-core-1_0.html#SelfIssued + */ + @Bean(name = "oidcProviderMetadata") + public OIDCProviderMetadataDetails OIDCProviderMetadataDetails( + @Value("${config.oidc.metadata.issuer}") + String issuer, + @Value("${config.oidc.metadata.authorizationEndpoint}") + URI authorizationEndpoint, + @Value("${config.oidc.metadata.tokenEndpoint}") + URI tokenEndpoint, + @Value("${config.oidc.metadata.userinfoEndpoint}") + URI userinfoEndpoint) { + _logger.debug("RedisConnectionFactory init ."); + OIDCProviderMetadataDetails oidcProviderMetadata = new OIDCProviderMetadataDetails(); + oidcProviderMetadata.setIssuer(issuer); + oidcProviderMetadata.setAuthorizationEndpoint(authorizationEndpoint); + oidcProviderMetadata.setTokenEndpoint(tokenEndpoint); + oidcProviderMetadata.setUserinfoEndpoint(userinfoEndpoint); + return oidcProviderMetadata; + } + + /** + * jwtSetKeyStore. + * @return + */ + @Bean(name = "jwkSetKeyStore") + public JWKSetKeyStore jwtSetKeyStore() { + JWKSetKeyStore jwkSetKeyStore = new JWKSetKeyStore(); + ClassPathResource classPathResource = new ClassPathResource("/config/keystore.jwks"); + jwkSetKeyStore.setLocation(classPathResource); + return jwkSetKeyStore; + } + + /** + * jwtSetKeyStore. + * @return + * @throws JOSEException + * @throws InvalidKeySpecException + * @throws NoSuchAlgorithmException + */ + @Bean(name = "jwtSignerValidationService") + public DefaultJwtSigningAndValidationService jwtSignerValidationService( + JWKSetKeyStore jwtSetKeyStore) + throws NoSuchAlgorithmException, InvalidKeySpecException, JOSEException { + DefaultJwtSigningAndValidationService jwtSignerValidationService = + new DefaultJwtSigningAndValidationService(jwtSetKeyStore); + jwtSignerValidationService.setDefaultSignerKeyId("maxkey_rsa"); + jwtSignerValidationService.setDefaultSigningAlgorithmName("RS256"); + return jwtSignerValidationService; + } + + /** + * jwtSetKeyStore. + * @return + * @throws JOSEException + * @throws InvalidKeySpecException + * @throws NoSuchAlgorithmException + */ + @Bean(name = "jwtEncryptionService") + public DefaultJwtEncryptionAndDecryptionService jwtEncryptionService( + JWKSetKeyStore jwtSetKeyStore) + throws NoSuchAlgorithmException, InvalidKeySpecException, JOSEException { + DefaultJwtEncryptionAndDecryptionService jwtEncryptionService = + new DefaultJwtEncryptionAndDecryptionService(jwtSetKeyStore); + jwtEncryptionService.setDefaultAlgorithm(JWEAlgorithm.RSA1_5);//RSA1_5 + jwtEncryptionService.setDefaultDecryptionKeyId("maxkey_rsa"); + jwtEncryptionService.setDefaultEncryptionKeyId("maxkey_rsa"); + return jwtEncryptionService; + } + + /** + * JwtLoginService. + * @return + */ + @Bean(name = "jwtLoginService") + public JwtLoginService jwtLoginService( + DefaultJwtSigningAndValidationService jwtSignerValidationService, + OIDCProviderMetadataDetails oidcProviderMetadata) { + JwtLoginService jwkSetKeyStore = new JwtLoginService(); + jwkSetKeyStore.setJwtSignerValidationService(jwtSignerValidationService); + jwkSetKeyStore.setJwtProviderMetadata(oidcProviderMetadata); + return jwkSetKeyStore; + } + + + @Override + public void afterPropertiesSet() throws Exception { + // TODO Auto-generated method stub + + } +} diff --git a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtApplication.java b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtApplication.java index f1cf63d6d..08adc90a7 100644 --- a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtApplication.java +++ b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtApplication.java @@ -3,6 +3,7 @@ package org.maxkey; import java.util.Date; import javax.servlet.ServletException; import org.maxkey.web.InitializeContext; +import org.mybatis.spring.annotation.MapperScan; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; @@ -16,9 +17,22 @@ import org.springframework.context.annotation.ImportResource; @SpringBootApplication @ImportResource(locations={"classpath:spring/maxkey-mgt.xml"}) @ComponentScan(basePackages = { - "org.maxkey.MaxKeyMgtConfig" + "org.maxkey.MaxKeyMgtConfig", + "org.maxkey.config", + "org.maxkey.domain", + "org.maxkey.domain.apps", + "org.maxkey.domain.userinfo", + "org.maxkey.web.endpoint", + "org.maxkey.web.contorller", + "org.maxkey.web.apps.contorller", + "org.maxkey.web.endpoint", + "org.maxkey.authn", + "org.maxkey.dao", + "org.maxkey.web", + "org.maxkey.web.tag" } ) +@MapperScan("org.maxkey.dao.persistence,") public class MaxKeyMgtApplication extends SpringBootServletInitializer { private static final Logger _logger = LoggerFactory.getLogger(MaxKeyMgtApplication.class); @@ -28,7 +42,6 @@ public class MaxKeyMgtApplication extends SpringBootServletInitializer { ConfigurableApplicationContext applicationContext =SpringApplication.run(MaxKeyMgtApplication.class, args); InitializeContext initWebContext=new InitializeContext(applicationContext); - try { initWebContext.init(null); } catch (ServletException e) { diff --git a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtConfig.java b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtConfig.java index c8d49514b..5983a964e 100644 --- a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtConfig.java +++ b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtConfig.java @@ -1,16 +1,19 @@ package org.maxkey; -import org.mybatis.spring.annotation.MapperScan; +import javax.sql.DataSource; +import org.maxkey.authz.oauth2.provider.client.JdbcClientDetailsService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; +import org.springframework.security.crypto.password.PasswordEncoder; @Configuration @PropertySource("classpath:/application.properties") -@MapperScan("org.maxkey.dao.persistence,") -public class MaxKeyMgtConfig { +public class MaxKeyMgtConfig implements InitializingBean { private static final Logger _logger = LoggerFactory.getLogger(MaxKeyMgtConfig.class); @Value("${server.port:8080}") @@ -23,5 +26,19 @@ public class MaxKeyMgtConfig { public void setPort(int port) { this.port = port; } + + @Bean(name = "oauth20JdbcClientDetailsService") + public JdbcClientDetailsService JdbcClientDetailsService( + DataSource dataSource,PasswordEncoder passwordReciprocal) { + JdbcClientDetailsService clientDetailsService = new JdbcClientDetailsService(dataSource); + clientDetailsService.setPasswordEncoder(passwordReciprocal); + return clientDetailsService; + } + + @Override + public void afterPropertiesSet() throws Exception { + // TODO Auto-generated method stub + + } } diff --git a/maxkey-web-manage/src/main/resources/META-INF/spring.factories b/maxkey-web-manage/src/main/resources/META-INF/spring.factories index d73316fea..99a285239 100644 --- a/maxkey-web-manage/src/main/resources/META-INF/spring.factories +++ b/maxkey-web-manage/src/main/resources/META-INF/spring.factories @@ -3,4 +3,6 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.maxkey.autoconfigure.ApplicationAutoConfiguration,\ org.maxkey.autoconfigure.KaptchaAutoConfiguration,\ org.maxkey.autoconfigure.MvcAutoConfiguration,\ +org.maxkey.autoconfigure.JwtAuthnAutoConfiguration,\ +org.maxkey.autoconfigure.RedisAutoConfiguration,\ org.maxkey.MaxKeyMgtConfig diff --git a/maxkey-web-manage/src/main/resources/application.properties b/maxkey-web-manage/src/main/resources/application.properties index 856c6060d..a64ce7d25 100644 --- a/maxkey-web-manage/src/main/resources/application.properties +++ b/maxkey-web-manage/src/main/resources/application.properties @@ -24,6 +24,15 @@ spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #mybatis mybatis.type-aliases-package=org.maxkey.domain,org.maxkey.domain.apps, mybatis.mapper-locations=classpath*:/org/maxkey/dao/persistence/xml/mysql/*.xml +#redis +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.password=password +spring.redis.timeout=10000 +spring.redis.jedis.pool.max-wait=1000 +spring.redis.jedis.pool.max-idle=200 +spring.redis.lettuce.pool.max-active=-1 +spring.redis.lettuce.pool.min-idle=0 #mail spring.mail.default-encoding=utf-8 spring.mail.host=smtp.163.com diff --git a/maxkey-web-manage/src/main/resources/config/applicationConfig.properties b/maxkey-web-manage/src/main/resources/config/applicationConfig.properties index 8a13ccc1d..62108f6ee 100644 --- a/maxkey-web-manage/src/main/resources/config/applicationConfig.properties +++ b/maxkey-web-manage/src/main/resources/config/applicationConfig.properties @@ -9,6 +9,8 @@ config.server.prefix.uri=${config.server.name}:9521/maxkey-mgt #default.uri config.server.default.uri=${config.server.prefix.uri}/main config.maxkey.uri=${config.server.name}/maxkey +#InMemory 0 , jdbc 1, Redis 2 +config.server.persistence=0 ############################################################################ # Login configuration #enable captcha @@ -26,7 +28,7 @@ config.login.wsfederation=false #remeberme config.login.remeberme=false #validity -config.login.remeberme.validity= +config.login.remeberme.validity=0 #default.uri #to appList page config.login.default.uri=appList diff --git a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-security.xml b/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-security.xml deleted file mode 100644 index b6d850a34..000000000 --- a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-security.xml +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-task.xml b/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-task.xml deleted file mode 100644 index 00fda6dca..000000000 --- a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt-task.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt.xml b/maxkey-web-manage/src/main/resources/spring/maxkey-mgt.xml index a24d596c8..73b1d1940 100644 --- a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt.xml +++ b/maxkey-web-manage/src/main/resources/spring/maxkey-mgt.xml @@ -19,58 +19,94 @@ http://www.springframework.org/schema/mvc/spring-mvc.xsd"> - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java b/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java index b2dfafdfc..8096349e6 100644 --- a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java +++ b/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java @@ -9,20 +9,34 @@ import org.maxkey.crypto.password.opt.algorithm.KeyUriFormat; import org.mybatis.spring.annotation.MapperScan; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.context.annotation.PropertySource; + + + @Configuration @ImportResource(locations = { "classpath:spring/maxkey.xml" }) @PropertySource("classpath:/application.properties") @PropertySource("classpath:/config/applicationConfig.properties") @MapperScan("org.maxkey.dao.persistence,") -public class MaxKeyConfig { +@ComponentScan(basePackages = { + "org.maxkey.config", + "org.maxkey.domain", + "org.maxkey.domain.apps", + "org.maxkey.domain.userinfo", + "org.maxkey.api.v1.contorller", + "org.maxkey.web.endpoint", + "org.maxkey.web.contorller" +}) +public class MaxKeyConfig implements InitializingBean { private static final Logger _logger = LoggerFactory.getLogger(MaxKeyConfig.class); @Value("${server.port:8080}") @@ -94,6 +108,12 @@ public class MaxKeyConfig { return keyUriFormat; } + @Override + public void afterPropertiesSet() throws Exception { + // TODO Auto-generated method stub + + } + } diff --git a/maxkey-web-maxkey/src/main/resources/config/applicationConfig.properties b/maxkey-web-maxkey/src/main/resources/config/applicationConfig.properties index 518835fa4..06635e884 100644 --- a/maxkey-web-maxkey/src/main/resources/config/applicationConfig.properties +++ b/maxkey-web-maxkey/src/main/resources/config/applicationConfig.properties @@ -9,7 +9,8 @@ config.server.prefix.uri=${config.server.name}/maxkey #default.uri config.server.default.uri=${config.server.prefix.uri}/maxkey/appList config.server.management.uri=${config.server.name}:9521/maxkey-mgt/login - +#InMemory 0 , jdbc 1, Redis 2 +config.server.persistence=0 config.app.issuer=CN=ConSec,CN=COM,CN=SH ############################################################################ # Login configuration @@ -28,7 +29,7 @@ config.login.wsfederation=false #remeberme config.login.remeberme=true #validity -config.login.remeberme.validity= +config.login.remeberme.validity=0 #to default application web site config.login.default.uri=appList diff --git a/maxkey-web-maxkey/src/main/resources/spring/maxkey-protocol.xml b/maxkey-web-maxkey/src/main/resources/spring/maxkey-protocol.xml deleted file mode 100644 index 278cec825..000000000 --- a/maxkey-web-maxkey/src/main/resources/spring/maxkey-protocol.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/maxkey-web-maxkey/src/main/resources/spring/maxkey-security.xml b/maxkey-web-maxkey/src/main/resources/spring/maxkey-security.xml deleted file mode 100644 index 5ec5316d1..000000000 --- a/maxkey-web-maxkey/src/main/resources/spring/maxkey-security.xml +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/maxkey-web-maxkey/src/main/resources/spring/maxkey-support.xml b/maxkey-web-maxkey/src/main/resources/spring/maxkey-support.xml deleted file mode 100644 index 07bcd79d7..000000000 --- a/maxkey-web-maxkey/src/main/resources/spring/maxkey-support.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/maxkey-web-maxkey/src/main/resources/spring/maxkey-task.xml b/maxkey-web-maxkey/src/main/resources/spring/maxkey-task.xml deleted file mode 100644 index 6f2156b40..000000000 --- a/maxkey-web-maxkey/src/main/resources/spring/maxkey-task.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/maxkey-web-maxkey/src/main/resources/spring/maxkey.xml b/maxkey-web-maxkey/src/main/resources/spring/maxkey.xml index e723a020f..8c10bd086 100644 --- a/maxkey-web-maxkey/src/main/resources/spring/maxkey.xml +++ b/maxkey-web-maxkey/src/main/resources/spring/maxkey.xml @@ -17,28 +17,151 @@ http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> - - - - - - - - - - - - - - + - - - - - + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file