springcloud &springcloud alibaba & nacos support

springcloud &springcloud alibaba & nacos support
上级 69b4c49a
......@@ -46,16 +46,16 @@ allprojects {
sourceCompatibility = 1.8
targetCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'
/*
eclipse {
第一次时请注释这段eclipse设置,可能报错,设置工程字符集
/* 第一次时请注释这段eclipse设置,可能报错,设置工程字符集
jdt {
File f = file('.settings/org.eclipse.core.resources.prefs')
f.write('eclipse.preferences.version=1\n')
f.append('encoding/<project>=UTF-8') //use UTF-8
}
}*/
}
*/
}
......@@ -149,11 +149,13 @@ subprojects {
implementation group: 'commons-httpclient', name: 'commons-httpclient', version: "${commonshttpclientVersion}"
implementation group: 'commons-fileupload', name: 'commons-fileupload', version: "${commonsfileuploadVersion}"
implementation group: 'org.apache.commons', name: 'commons-email', version: "${commonsemailVersion}"
implementation group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: "${httpasyncclientVersion}"
implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: "${httpcomponentsVersion}"
implementation group: 'org.apache.httpcomponents', name: 'fluent-hc', version: "${httpcomponentsVersion}"
implementation group: 'org.apache.httpcomponents', name: 'httpclient-cache', version: "${httpcomponentsVersion}"
implementation group: 'org.apache.httpcomponents', name: 'httpmime', version: "${httpcomponentsVersion}"
implementation group: 'org.apache.httpcomponents', name: 'httpcore', version: "${httpcoreVersion}"
implementation group: 'org.apache.httpcomponents', name: 'httpcore-nio', version: "${httpcoreVersion}"
implementation group: 'org.apache.velocity', name: 'velocity', version: "${velocityVersion}"
implementation group: 'velocity', name: 'velocity-dep', version: "${velocitydepVersion}"
implementation group: 'org.freemarker', name: 'freemarker', version: "${freemarkerVersion}"
......@@ -233,9 +235,11 @@ subprojects {
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-reactor-netty', version: "${springBootVersion}"
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: "${springBootVersion}"
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis-reactive', version: "${springBootVersion}"
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: "${springBootVersion}"
testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: "${springBootVersion}"
//spring-boot-admin
implementation group: 'de.codecentric', name: 'spring-boot-admin-client', version: '2.5.0'
implementation group: 'de.codecentric', name: 'spring-boot-admin-client', version: "${springbootadminVersion}"
implementation group: 'de.codecentric', name: 'spring-boot-admin-starter-client', version: "${springbootadminVersion}"
//spring-data
implementation group: 'org.springframework.data', name: 'spring-data-commons', version: "${springDataVersion}"
......@@ -247,6 +251,19 @@ subprojects {
implementation group: 'org.springframework.plugin', name: 'spring-plugin-core', version: "${springplugincoreVersion}"
implementation group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: "${springpluginmetadataVersion}"
//spring cloud
implementation group: 'org.springframework.cloud', name: 'spring-cloud-commons', version: "${springcloudVersion}"
implementation group: 'org.springframework.cloud', name: 'spring-cloud-context', version: "${springcloudVersion}"
implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: "${springcloudVersion}"
implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-bootstrap', version: "${springcloudVersion}"
//spring-cloud-alibaba
implementation group: 'com.alibaba.spring', name: 'spring-context-support', version: "${springcloudalibabaspringVersion}"
implementation group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-commons', version: "${springcloudalibabaVersion}"
//alibaba nacos
implementation group: 'com.alibaba.nacos', name: 'nacos-client', version: "${alibabanacosclientVersion}"
implementation group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-discovery', version: "${springcloudalibabaVersion}"
implementation group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-config', version: "${springcloudalibabaVersion}"
//saml
implementation group: 'org.opensaml', name: 'opensaml', version: "${opensamlVersion}"
implementation group: 'org.opensaml', name: 'openws', version: "${openwsVersion}"
......@@ -267,6 +284,7 @@ subprojects {
// https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence
// for mybatis-jpa-extra
implementation group: 'org.eclipse.persistence', name: 'javax.persistence', version: "${javaxpersistenceVersion}"
implementation group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.0.0'
implementation group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: "${jakartaannotationVersion}"
implementation group: 'jakarta.validation', name: 'jakarta.validation-api', version: "${jakartavalidationapiVersion}"
implementation group: 'javax.activation', name: 'activation', version: "${activationVersion}"
......@@ -334,6 +352,9 @@ subprojects {
implementation group: 'io.micrometer', name: 'micrometer-core', version: "${micrometercoreVersion}"
implementation group: 'org.latencyutils', name: 'LatencyUtils', version: "${LatencyUtilsVersion}"
implementation group: 'org.codehaus.woodstox', name: 'stax2-api', version: "${stax2apiVersion}"
implementation group: 'org.reflections', name: 'reflections', version: '0.9.11'
implementation group: 'io.prometheus', name: 'simpleclient', version: '0.5.0'
//阿里云
implementation group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: "${aliyunjavasdkcoreVersion}"
//腾讯云
......
......@@ -25,6 +25,7 @@ commonsfileuploadVersion =1.4
commonsemailVersion =1.5
httpcomponentsVersion =4.5.13
httpcoreVersion =4.4.14
httpasyncclientVersion =4.1.4
velocityVersion =1.7
velocitydepVersion =1.4
freemarkerVersion =2.3.31
......@@ -48,7 +49,9 @@ springpluginmetadataVersion =2.0.0.RELEASE
springfoxVersion =3.0.0
springcloudVersion =3.0.3
springcloudalibabaVersion =2021.1
springcloudalibabaspringVersion =1.0.11
springcloudalibabacsplVersion =1.8.2
alibabanacosclientVersion =2.0.3
#google
jibGradlePluginVersion =2.7.1
kaptchaVersion =2.3.2
......@@ -59,7 +62,7 @@ zxingcoreVersion =3.4.1
concurrentlinkedhashmaplruVersion =1.4.2
#jboss
jbossloggingVersion =3.4.2.Final
hibernateVersion =7.0.1.Final
hibernateVersion =6.2.0.Final
#doc
swaggerVersion =1.6.2
swaggerV3Version =2.1.10
......
......@@ -17,9 +17,6 @@
package org.maxkey.autoconfigure;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.maxkey.authn.AbstractAuthenticationProvider;
import org.maxkey.authn.RealmAuthenticationProvider;
import org.maxkey.authn.SavedRequestAwareAuthenticationSuccessHandler;
......@@ -29,13 +26,6 @@ import org.maxkey.authn.realm.AbstractAuthenticationRealm;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.authn.support.rememberme.RemeberMeServiceFactory;
import org.maxkey.configuration.ApplicationConfig;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.crypto.password.LdapShaPasswordEncoder;
import org.maxkey.crypto.password.Md4PasswordEncoder;
import org.maxkey.crypto.password.NoOpPasswordEncoder;
import org.maxkey.crypto.password.MessageDigestPasswordEncoder;
import org.maxkey.crypto.password.SM3PasswordEncoder;
import org.maxkey.crypto.password.StandardPasswordEncoder;
import org.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.maxkey.persistence.db.PasswordPolicyValidator;
import org.maxkey.persistence.redis.RedisConnectionFactory;
......@@ -46,20 +36,12 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
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.DelegatingPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
import org.maxkey.persistence.db.LoginService;
import org.maxkey.persistence.db.LoginHistoryService;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class AuthenticationAutoConfiguration implements InitializingBean {
private static final Logger _logger =
LoggerFactory.getLogger(AuthenticationAutoConfiguration.class);
......@@ -93,11 +75,6 @@ public class AuthenticationAutoConfiguration implements InitializingBean {
}
@Bean(name = "transactionManager")
public DataSourceTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "passwordPolicyValidator")
public PasswordPolicyValidator passwordPolicyValidator(JdbcTemplate jdbcTemplate,MessageSource messageSource) {
return new PasswordPolicyValidator(jdbcTemplate,messageSource);
......@@ -112,40 +89,6 @@ public class AuthenticationAutoConfiguration implements InitializingBean {
return new LoginHistoryService(jdbcTemplate);
}
/**
* Authentication Password Encoder .
* @return
*/
@Bean(name = "passwordEncoder")
public PasswordEncoder passwordEncoder() {
_logger.debug("init passwordEncoder .");
String idForEncode = "bcrypt";
Map<String ,PasswordEncoder > encoders = new HashMap<String ,PasswordEncoder>();
encoders.put(idForEncode, new BCryptPasswordEncoder());
encoders.put("plain", NoOpPasswordEncoder.getInstance());
encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
encoders.put("scrypt", new SCryptPasswordEncoder());
//md
encoders.put("md4", new Md4PasswordEncoder());
encoders.put("md5", new MessageDigestPasswordEncoder("MD5"));
//sha
encoders.put("sha1", new StandardPasswordEncoder("SHA-1",""));
encoders.put("sha256", new StandardPasswordEncoder());
encoders.put("sha384", new StandardPasswordEncoder("SHA-384",""));
encoders.put("sha512", new StandardPasswordEncoder("SHA-512",""));
encoders.put("sm3", new SM3PasswordEncoder());
encoders.put("ldap", new LdapShaPasswordEncoder());
//idForEncode is default for encoder
PasswordEncoder passwordEncoder =
new DelegatingPasswordEncoder(idForEncode, encoders);
return passwordEncoder;
}
/**
* remeberMeService .
* @return
......
......@@ -25,7 +25,6 @@ import java.security.spec.InvalidKeySpecException;
import org.maxkey.authn.support.jwt.JwtLoginService;
import org.maxkey.configuration.oidc.OIDCProviderMetadataDetails;
import org.maxkey.constants.ConstantsProperties;
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;
......@@ -35,12 +34,10 @@ 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(ConstantsProperties.applicationPropertySource)
public class JwtAuthnAutoConfiguration implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(JwtAuthnAutoConfiguration.class);
......
......@@ -20,11 +20,9 @@ package org.maxkey.autoconfigure;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.maxkey.authn.support.socialsignon.service.JdbcSocialsAssociateService;
import org.maxkey.authn.support.socialsignon.service.SocialSignOnProvider;
import org.maxkey.authn.support.socialsignon.service.SocialSignOnProviderService;
import org.maxkey.constants.ConstantsProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
......@@ -32,33 +30,40 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.env.StandardEnvironment;
import org.springframework.jdbc.core.JdbcTemplate;
@Configuration
@ComponentScan(basePackages = {
"org.maxkey.authn.support.socialsignon"
})
@PropertySource(ConstantsProperties.applicationPropertySource)
public class SocialSignOnAutoConfiguration implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(SocialSignOnAutoConfiguration.class);
@Bean(name = "socialSignOnProviderService")
@ConditionalOnClass(SocialSignOnProvider.class)
public SocialSignOnProviderService socialSignOnProviderService(
Properties applicationProperty) throws IOException {
PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer) throws IOException {
SocialSignOnProviderService socialSignOnProviderService = new SocialSignOnProviderService();
String [] providerList =applicationProperty.get("maxkey.login.socialsignon.providers").toString().split(",");
StandardEnvironment properties = (StandardEnvironment) propertySourcesPlaceholderConfigurer
.getAppliedPropertySources()
.get(PropertySourcesPlaceholderConfigurer.ENVIRONMENT_PROPERTIES_PROPERTY_SOURCE_NAME)
.getSource();
List<SocialSignOnProvider> socialSignOnProviderList = new ArrayList<SocialSignOnProvider>();
String [] providerList =properties.getProperty("maxkey.login.socialsignon.providers").toString().split(",");
for(String provider : providerList) {
String providerName = applicationProperty.getProperty("maxkey.socialsignon."+provider+".provider.name");
String icon=applicationProperty.getProperty("maxkey.socialsignon."+provider+".icon");
String clientId=applicationProperty.getProperty("maxkey.socialsignon."+provider+".client.id");
String clientSecret=applicationProperty.getProperty("maxkey.socialsignon."+provider+".client.secret");
String sortOrder = applicationProperty.getProperty("maxkey.socialsignon."+provider+".sortorder");
String agentId = applicationProperty.getProperty("maxkey.socialsignon."+provider+".agent.id");
String hidden = applicationProperty.getProperty("maxkey.socialsignon."+provider+".hidden");
String providerName = properties.getProperty("maxkey.socialsignon."+provider+".provider.name");
String icon=properties.getProperty("maxkey.socialsignon."+provider+".icon");
String clientId=properties.getProperty("maxkey.socialsignon."+provider+".client.id");
String clientSecret=properties.getProperty("maxkey.socialsignon."+provider+".client.secret");
String sortOrder = properties.getProperty("maxkey.socialsignon."+provider+".sortorder");
String agentId = properties.getProperty("maxkey.socialsignon."+provider+".agent.id");
String hidden = properties.getProperty("maxkey.socialsignon."+provider+".hidden");
SocialSignOnProvider socialSignOnProvider = new SocialSignOnProvider();
socialSignOnProvider.setProvider(provider);
......
......@@ -59,7 +59,6 @@ import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class ApplicationAutoConfiguration implements InitializingBean {
private static final Logger _logger =
LoggerFactory.getLogger(ApplicationAutoConfiguration.class);
......@@ -76,7 +75,7 @@ public class ApplicationAutoConfiguration implements InitializingBean {
* @return propertySourcesPlaceholderConfigurer
* @throws IOException null
*/
@Bean (name = "propertySourcesPlaceholderConfigurer")
/*@Bean (name = "propertySourcesPlaceholderConfigurer")
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer()
throws IOException {
ClassPathResource classPathApplicationPropertySource =
......@@ -105,7 +104,7 @@ public class ApplicationAutoConfiguration implements InitializingBean {
properties.load(resource.getInputStream());
return properties;
}
*/
@Bean(name = "passwordReciprocal")
public PasswordReciprocal passwordReciprocal() {
......
......@@ -23,7 +23,6 @@ import java.util.List;
import javax.servlet.Filter;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.constants.ConstantsTimeInterval;
import org.maxkey.persistence.db.LoginHistoryService;
import org.maxkey.persistence.db.LoginService;
......@@ -41,7 +40,7 @@ import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Primary;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
......@@ -61,7 +60,6 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandl
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class MvcAutoConfiguration implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(MvcAutoConfiguration.class);
......@@ -69,12 +67,13 @@ public class MvcAutoConfiguration implements InitializingBean {
* cookieLocaleResolver .
* @return cookieLocaleResolver
*/
@Primary
@Bean (name = "localeResolver")
public CookieLocaleResolver cookieLocaleResolver(
@Value("${maxkey.server.domain:maxkey.top}")String domainName) {
_logger.debug("DomainName " + domainName);
CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
cookieLocaleResolver.setCookieName("maxkey_lang");
cookieLocaleResolver.setCookieName("maxkey_locale");
cookieLocaleResolver.setCookieDomain(domainName);
cookieLocaleResolver.setCookieMaxAge(ConstantsTimeInterval.TWO_WEEK);
return cookieLocaleResolver;
......
......@@ -17,7 +17,6 @@
package org.maxkey.autoconfigure;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.persistence.redis.RedisConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -25,11 +24,9 @@ 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 redis.clients.jedis.JedisPoolConfig;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class RedisAutoConfiguration implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(RedisAutoConfiguration.class);
......
......@@ -17,7 +17,6 @@
package org.maxkey.autoconfigure;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.persistence.redis.RedisConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -26,7 +25,6 @@ import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
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;
......@@ -34,7 +32,6 @@ import org.springframework.session.web.http.DefaultCookieSerializer;
@Configuration
@ConditionalOnProperty(value = "spring.session.store-type", havingValue = "redis", matchIfMissing = false)
@EnableRedisHttpSession
@PropertySource(ConstantsProperties.applicationPropertySource)
public class SessionRedisAutoConfiguration implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(SessionRedisAutoConfiguration.class);
......
......@@ -17,12 +17,11 @@
package org.maxkey.configuration;
import org.maxkey.constants.ConstantsProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
/**
......@@ -36,7 +35,7 @@ import org.springframework.stereotype.Component;
*
*/
@Component
@PropertySource(ConstantsProperties.applicationPropertySource)
@Configuration
public class ApplicationConfig {
private static final Logger _logger = LoggerFactory.getLogger(ApplicationConfig.class);
......@@ -64,8 +63,11 @@ public class ApplicationConfig {
@Value("${maxkey.server.default.uri}")
String defaultUri;
@Value("${maxkey.server.management.uri}")
String managementUri;
@Value("${maxkey.server.mgt.uri}")
String mgtUri;
@Value("${maxkey.server.authz.uri}")
private String authzUri;
@Value("${server.port:8080}")
private int port;
......@@ -76,9 +78,6 @@ public class ApplicationConfig {
@Value("${maxkey.identity.kafkasupport:false}")
private boolean kafkaSupport;
@Value("${maxkey.maxkey.uri}")
private String maxKeyUri;
@Value("${maxkey.notices.visible:false}")
private boolean noticesVisible;
......@@ -170,13 +169,7 @@ public class ApplicationConfig {
this.emailConfig = emailConfig;
}
public String getManagementUri() {
return managementUri;
}
public void setManagementUri(String managementUri) {
this.managementUri = managementUri;
}
public String getDefaultUri() {
return defaultUri;
......@@ -194,15 +187,23 @@ public class ApplicationConfig {
this.kafkaSupport = kafkaSupport;
}
public String getMaxKeyUri() {
return maxKeyUri;
}
public String getMgtUri() {
return mgtUri;
}
public void setMaxKeyUri(String maxKeyUri) {
this.maxKeyUri = maxKeyUri;
}
public void setMgtUri(String mgtUri) {
this.mgtUri = mgtUri;
}
public String getAuthzUri() {
return authzUri;
}
public void setAuthzUri(String authzUri) {
this.authzUri = authzUri;
}
public int getSessionTimeout() {
public int getSessionTimeout() {
return sessionTimeout;
}
......@@ -238,13 +239,13 @@ public class ApplicationConfig {
builder.append(", defaultUri=");
builder.append(defaultUri);
builder.append(", managementUri=");
builder.append(managementUri);
builder.append(mgtUri);
builder.append(", port=");
builder.append(port);
builder.append(", kafkaSupport=");
builder.append(kafkaSupport);
builder.append(", maxKeyUri=");
builder.append(maxKeyUri);
builder.append(authzUri);
builder.append("]");
return builder.toString();
}
......
......@@ -19,10 +19,8 @@ package org.maxkey.configuration;
import java.io.UnsupportedEncodingException;
import org.maxkey.constants.ConstantsProperties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
/**
* 字符集转换及转换配置.
......@@ -31,7 +29,6 @@ import org.springframework.context.annotation.PropertySource;
*
*/
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class CharacterEncodingConfig {
/**
......
......@@ -17,13 +17,10 @@
package org.maxkey.configuration;
import org.maxkey.constants.ConstantsProperties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class EmailConfig {
@Value("${spring.mail.username}")
......
......@@ -17,13 +17,10 @@
package org.maxkey.configuration;
import org.maxkey.constants.ConstantsProperties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class LoginConfig {
@Value("${maxkey.login.captcha}")
boolean captcha;
......
......@@ -17,13 +17,8 @@
package org.maxkey.constants;
import org.junit.Test;
public class ConstantsProperties {
public static final String applicationPropertySource =
"classpath:/application.properties";
public static final String kaptchaPropertySource =
"classpath:/kaptcha.properties";
......@@ -38,9 +33,5 @@ public class ConstantsProperties {
return propertySource.replace(".", "-"+active+".").replaceAll("classpath:","");
}
@Test
public void classPathResourceTest() {
System.out.println(classPathResource(applicationPropertySource));
System.out.println(classPathResource(applicationPropertySource,"active"));
}
}
......@@ -21,13 +21,13 @@ import java.sql.Connection;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.joda.time.DateTime;
import org.maxkey.cache.CacheFactory;
import org.maxkey.util.PathUtils;
import org.slf4j.Logger;
......@@ -36,6 +36,8 @@ import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.env.PropertySource;
import org.springframework.core.env.StandardEnvironment;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.context.support.WebApplicationContextUtils;
......@@ -172,21 +174,15 @@ public class InitializeContext extends HttpServlet {
PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer =
((PropertySourcesPlaceholderConfigurer) applicationContext
.getBean("propertySourcesPlaceholderConfigurer"));
WebContext.properties = (Properties) propertySourcesPlaceholderConfigurer
WebContext.properties = (StandardEnvironment) propertySourcesPlaceholderConfigurer
.getAppliedPropertySources()
.get(PropertySourcesPlaceholderConfigurer.LOCAL_PROPERTIES_PROPERTY_SOURCE_NAME)
.get(PropertySourcesPlaceholderConfigurer.ENVIRONMENT_PROPERTIES_PROPERTY_SOURCE_NAME)
.getSource();
Set<Object> keyValue = WebContext.properties.keySet();
SortedSet<String> keyValueSet = new TreeSet<String>();
// sort key
for (Iterator<Object> it = keyValue.iterator(); it.hasNext();) {
String key = (String) it.next();
keyValueSet.add(key);
}
// out
for (Iterator<String> it = keyValueSet.iterator(); it.hasNext();) {
String key = (String) it.next();
_logger.trace(key + " = " + WebContext.properties.get(key));
Iterator<PropertySource<?>> it =WebContext.properties.getPropertySources().iterator();
while(it.hasNext()) {
_logger.debug("propertySource " + it.next());
}
_logger.trace("-----------------------------------------------------------");
}
......@@ -223,7 +219,9 @@ public class InitializeContext extends HttpServlet {
_logger.info("+ Version "
+ WebContext.properties.getProperty("application.formatted-version"));
_logger.info("+");
_logger.info("+ "+ ((char)0xA9) + "Copyright 2018-2021 https://www.maxkey.top/");
_logger.info("+ "+ ((char)0xA9) + "Copyright 2018-"
+ (new DateTime().getYear())
+ " https://www.maxkey.top/");
_logger.info("+ Licensed under the Apache License, Version 2.0 ");
_logger.info("-----------------------------------------------------------");
}
......
......@@ -23,7 +23,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -37,6 +36,7 @@ import org.maxkey.web.message.Message;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.StandardEnvironment;
import org.springframework.security.core.Authentication;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
......@@ -55,7 +55,7 @@ public final class WebContext {
final static Logger _logger = LoggerFactory.getLogger(WebContext.class);
public static Properties properties;
public static StandardEnvironment properties;
public static ApplicationContext applicationContext;
......
......@@ -21,7 +21,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.entity.Synchronizers;
import org.maxkey.synchronizer.SynchronizerJob;
import org.quartz.CronExpression;
......@@ -39,13 +38,11 @@ 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.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class SynchronizerAutoConfiguration implements InitializingBean {
private static final Logger _logger =
LoggerFactory.getLogger(SynchronizerAutoConfiguration.class);
......
......@@ -21,7 +21,6 @@ import org.maxkey.authz.cas.endpoint.ticket.TicketServices;
import org.maxkey.authz.cas.endpoint.ticket.pgt.ProxyGrantingTicketServicesFactory;
import org.maxkey.authz.cas.endpoint.ticket.st.TicketServicesFactory;
import org.maxkey.authz.cas.endpoint.ticket.tgt.TicketGrantingTicketServicesFactory;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.persistence.redis.RedisConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -30,14 +29,12 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.jdbc.core.JdbcTemplate;
@Configuration
@ComponentScan(basePackages = {
"org.maxkey.authz.cas.endpoint"
})
@PropertySource(ConstantsProperties.applicationPropertySource)
public class CasAutoConfiguration implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(CasAutoConfiguration.class);
......
......@@ -41,7 +41,6 @@ import org.maxkey.authz.oauth2.provider.token.store.JwtAccessTokenConverter;
import org.maxkey.authz.oauth2.provider.token.store.TokenStoreFactory;
import org.maxkey.authz.oidc.idtoken.OIDCIdTokenEnhancer;
import org.maxkey.configuration.oidc.OIDCProviderMetadataDetails;
import org.maxkey.constants.ConstantsProperties;
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;
......@@ -55,7 +54,6 @@ 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.PropertySource;
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.authentication.ProviderManager;
......@@ -71,7 +69,6 @@ import com.nimbusds.jose.JWEAlgorithm;
"org.maxkey.authz.oauth2.provider.userinfo.endpoint",
"org.maxkey.authz.oauth2.provider.approval.controller"
})
@PropertySource(ConstantsProperties.applicationPropertySource)
public class Oauth20AutoConfiguration implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(Oauth20AutoConfiguration.class);
......
......@@ -34,7 +34,6 @@ import org.maxkey.authz.saml20.binding.impl.PostBindingAdapter;
import org.maxkey.authz.saml20.binding.impl.PostSimpleSignBindingAdapter;
import org.maxkey.authz.saml20.provider.xml.AuthnResponseGenerator;
import org.maxkey.authz.saml20.xml.SAML2ValidatorSuite;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.crypto.keystore.KeyStoreLoader;
import org.maxkey.entity.Saml20Metadata;
import org.opensaml.common.binding.security.IssueInstantRule;
......@@ -50,7 +49,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.ui.velocity.VelocityEngineFactoryBean;
@Configuration
......@@ -58,7 +56,6 @@ import org.springframework.ui.velocity.VelocityEngineFactoryBean;
"org.maxkey.authz.saml20.provider.endpoint",
"org.maxkey.authz.saml20.metadata.endpoint",
})
@PropertySource(ConstantsProperties.applicationPropertySource)
public class Saml20AutoConfiguration implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(Saml20AutoConfiguration.class);
......
......@@ -6,6 +6,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
......@@ -14,6 +15,7 @@ import de.codecentric.boot.admin.server.config.EnableAdminServer;
@Configuration
@EnableAdminServer
@EnableDiscoveryClient
@SpringBootApplication(
exclude={
RedisAutoConfiguration.class,
......
......@@ -14,24 +14,24 @@ public class MonitorSecurityConfigurer extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 登录成功处理类
// 登录成功处理类
SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setTargetUrlParameter("redirectTo");
successHandler.setDefaultTargetUrl("/");
http.authorizeRequests()
//无需认证
//无需认证
.antMatchers(
"/login", //登录页面
"/assets/**", //静态文件允许访问
"/actuator/**", //springboot-admin监控的请求
"/instances/**" //springboot-admin监控的实例信息请求
"/login", //登录页面
"/assets/**", //静态文件允许访问
"/actuator/**", //springboot-admin监控的请求
"/instances/**" //springboot-admin监控的实例信息请求
).permitAll()
//其他所有请求需要登录
//其他所有请求需要登录
.anyRequest().authenticated()
//登录
//登录
.and().formLogin().loginPage("/login").successHandler(successHandler)
//登出
//登出
.and().logout().logoutUrl("/logout").logoutSuccessUrl("/login")
.and().httpBasic()
.and().csrf()
......
......@@ -16,8 +16,13 @@
#MaxKey Title and Version #
############################################################################
application.title=MaxKey
spring.application.name=maxkey-boot-admin-server
#for dynamic service discovery
spring.application.name=maxkey-monitor
application.formatted-version=v2.9.0 GA
#nacos
spring.cloud.nacos.discovery.enabled=false
spring.cloud.nacos.discovery.instance-enabled=false
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
server.port=9528
......
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# Nacos \u63A7\u5236\u53F0\u6DFB\u52A0\u914D\u7F6E\uFF1A
# Data ID\uFF1Amaxkey-monitor.properties
# Group\uFF1ADEFAULT_GROUP
# \u914D\u7F6E\u5185\u5BB9\uFF1A
spring.application.name=maxkey-monitor
# \u6307\u5B9A\u914D\u7F6E\u7684\u540E\u7F00\uFF0C\u652F\u6301 properties\u3001yaml\u3001yml\uFF0C\u9ED8\u8BA4\u4E3A properties
spring.cloud.nacos.config.file-extension=properties
#spring.cloud.nacos.config.file-extension=yaml
#\u662F\u5426\u542F\u7528nacos\u914D\u7F6E
spring.cloud.nacos.config.enabled=false
\ No newline at end of file
......@@ -23,6 +23,7 @@
<Logger level="INFO" name="org.springframework" ></Logger>
<Logger level="INFO" name="org.apache.logging" ></Logger>
<Logger level="DEBUG" name="org.maxkey" ></Logger>
<Logger level="ERROR" name="org.reflections.Reflections" ></Logger>
<Root level="INFO">
<AppenderRef ref="consolePrint" />
......
-classpath D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-webs\maxkey-web-maxkey\bin\main;\maxkey-protocol-tokenbased\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-protocols\maxkey-protocol-tokenbased\bin\main;\maxkey-authentication-otp\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-authentications\maxkey-authentication-otp\bin\main;\maxkey-protocol-oauth-2.0\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-protocols\maxkey-protocol-oauth-2.0\bin\main;\maxkey-protocol-authorize\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-protocols\maxkey-protocol-authorize\bin\main;\maxkey-authentication-social\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-authentications\maxkey-authentication-social\bin\main;\maxkey-protocol-saml-2.0\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-protocols\maxkey-protocol-saml-2.0\bin\main;\maxkey-protocol-cas\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-protocols\maxkey-protocol-cas\bin\main;\maxkey-protocol-extendapi\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-protocols\maxkey-protocol-extendapi\bin\main;\maxkey-web-resources\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-webs\maxkey-web-resources\bin\main;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-core\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-core\bin\main;\maxkey-authentication-core\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-authentications\maxkey-authentication-core\bin\main;\maxkey-persistence\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-persistence\bin\main;\maxkey-protocol-formbased\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-protocols\maxkey-protocol-formbased\bin\main;\maxkey-common\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-common\bin\main;\maxkey-authentication-captcha\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-authentications\maxkey-authentication-captcha\bin\main;\maxkey-protocol-jwt\bin\default;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-protocols\maxkey-protocol-jwt\bin\main;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\junit\junit\4.11\4e031bb61df09069aeb2bffb4019e7a5034a4ee0\junit-4.11.jar;C:\Users\shimh\.m2\repository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.15\49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d\commons-codec-1.15.jar;C:\Users\shimh\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-collections4\4.4\62ebe7544cb7164d87e0637a2a6a2bdc981395e8\commons-collections4-4.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-text\1.9\ba6ac8c2807490944a0a27f6f8e68fb5ed2e80e2\commons-text-1.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-dbcp2\2.6.0\78d0e99c4bc815a9f20cf6837761e91b7fc6eef4\commons-dbcp2-2.6.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\commons-dbutils\commons-dbutils\1.7\a2d6e515aa87e5d38f6b3003e70b13c1b1f19ca0\commons-dbutils-1.7.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-digester3\3.2\c3f68c5ff25ec5204470fd8fdf4cb8feff5e8a79\commons-digester3-3.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\commons-digester\commons-digester\2.1\73a8001e7a54a255eef0f03521ec1805dc738ca0\commons-digester-2.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.8.0\92999e26e6534606b5678014e66948286298a35c\commons-io-2.8.0.jar;C:\Users\shimh\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.11\68e9a6adf7cf8eb7e9d31bbc554c7c75eeaac568\commons-lang3-3.11.jar;C:\Users\shimh\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-pool2\2.6.2\775a8072995b29eafe8fb0a828a190589f71cede\commons-pool2-2.6.2.jar;C:\Users\shimh\.m2\repository\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\commons-fileupload\commons-fileupload\1.4\f95188e3d372e20e7328706c37ef366e5d7859b0\commons-fileupload-1.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-email\1.5\e8e677c6362eba14ff3c476ba63ccb83132dbd52\commons-email-1.5.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpasyncclient\4.1.4\f3a3240681faae3fa46b573a4c7e50cec9db0d86\httpasyncclient-4.1.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.13\e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada\httpclient-4.5.13.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\fluent-hc\4.5.13\300bf1846737e34b9ea10faae257ca8fdcd0616f\fluent-hc-4.5.13.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient-cache\4.5.13\4abee263cbc9edc12393212ca3a7c89af0755b1f\httpclient-cache-4.5.13.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpmime\4.5.13\efc110bad4a0d45cda7858e6beee1d8a8313da5a\httpmime-4.5.13.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.14\9dd1a631c082d92ecd4bd8fd4cf55026c720a8c1\httpcore-4.4.14.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore-nio\4.4.14\175aeb59b09cf2ebbec622fe1704904a092ee291\httpcore-nio-4.4.14.jar;C:\Users\shimh\.m2\repository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\velocity\velocity-dep\1.4\b1df5193d3dd66a310b32828c547cd9e163b98df\velocity-dep-1.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.freemarker\freemarker\2.3.31\cd4fc0942b4a8bdb19f3b669aa42136fb54feb55\freemarker-2.3.31.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.xmlbeans\xmlbeans\3.0.1\50d94da791ab1e799a11d6f82410fd7d49f402ca\xmlbeans-3.0.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.20\b8df472b31e1f17c232d2ad78ceb1c84e00c641b\commons-compress-1.20.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.poi\poi\4.1.2\964bf41cf68bce08e4ef6b2279b559fdf8d454f4\poi-4.1.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.poi\poi-ooxml\4.1.2\87d9a22aa9a7dd26e80c360e709f7ee02e32ab3b\poi-ooxml-4.1.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.poi\poi-ooxml-schemas\4.1.2\550cc22a598c0b0a51d1f55f8371e83c1229802d\poi-ooxml-schemas-4.1.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.poi\poi-scratchpad\4.1.2\1be379e91d3d3fb0cd11425451acdbfb0d2264e7\poi-scratchpad-4.1.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-core\9.0.52\501d876042f7bff64ee42cf1849e4abea272632\tomcat-embed-core-9.0.52.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-el\9.0.52\ee51a2bab9b9c055f857fef0926116e8f459e8cc\tomcat-embed-el-9.0.52.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-websocket\9.0.52\557c15720af6f8d59a8308ce290f4408b5325194\tomcat-embed-websocket-9.0.52.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-logging-juli\8.5.2\eb8d86e9972274272133c73a976ea744d9086cf1\tomcat-embed-logging-juli-8.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-1.2-api\2.14.1\6bfcc76fa1a1a41295aff0042200aaa82d9ac286\log4j-1.2-api-2.14.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.14.1\cd8858fbbde69f46bce8db1152c18a43328aae78\log4j-api-2.14.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.14.1\9141212b8507ab50a45525b545b39d224614528b\log4j-core-2.14.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-jcl\2.14.1\1fca42e15f41409c143aab446c754f35995cd7d1\log4j-jcl-2.14.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-jul\2.14.1\8ba38040d35759986f56779c76767e437d4db626\log4j-jul-2.14.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-slf4j-impl\2.14.1\9a40554b8dab7ac9606089c87ae8a5ba914ec932\log4j-slf4j-impl-2.14.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-web\2.14.1\cab83afbb8f2efdc730035b86d6f7b170c3cc2e7\log4j-web-2.14.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\1.7.32\cdcff33940d9f2de763bc41ea05a0be5941176c3\slf4j-api-1.7.32.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.jboss.logging\jboss-logging\3.4.2.Final\e517b8a93dd9962ed5481345e4d262fdd47c4217\jboss-logging-3.4.2.Final.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\5.3.9\9bcad31a74e60d205500dd67d2220bd0195c63f8\spring-aop-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aspects\5.3.9\ee2c3f8f99e1f115f502a7e47e632b1ed229e766\spring-aspects-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\5.3.9\48600db2cb1abc0f7ef2b073f0c1abd78a83bcfc\spring-beans-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\5.3.9\cfef19d1dfa41d56f8de66238dc015334997d573\spring-core-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\5.3.9\887f4579ade4f47cf0102856f4f4c88eda8ec9d7\spring-context-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context-indexer\5.3.9\830f9868c2b088a5b9b6d0623092f67e6153f968\spring-context-indexer-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context-support\5.3.9\9aeab3bea52f94e54bcf6b82c1e515aa3529ab63\spring-context-support-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\5.3.9\f5ca763cfb9d62d196efd5d25e8daca7d555ed75\spring-expression-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\5.3.9\622eb12c98768b6d3acc71ce06bac8b332607a10\spring-jcl-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jdbc\5.3.9\18efdbd53c154a08e1854a6cff29c2becea04025\spring-jdbc-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-messaging\5.3.9\bcce428a1648c8b8814203bcc6dee1028280b6f6\spring-messaging-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-oxm\5.3.9\c5b33bba23232878b53c9486c2d4cc8cabc78401\spring-oxm-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-tx\5.3.9\a7057cf30368d014a1c8e5880a128703c890ec79\spring-tx-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\5.3.9\88c920ec1bda67fea04daa8e16165777440df473\spring-web-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webflux\5.3.9\8a8b3ba9358800c6c3e2a4ec60da9644e8495844\spring-webflux-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\5.3.9\c3cd1f0bba2658995e887d2f0011ab9bd3da1773\spring-webmvc-5.3.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.apache.kafka\kafka-clients\2.6.2\2cac75d298c496dc3995ae28eebe6fe5a6b64843\kafka-clients-2.6.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.kafka\spring-kafka\2.7.6\3d1008cbad8c9774fbaba2728dfe67fca0ad8deb\spring-kafka-2.7.6.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.retry\spring-retry\1.3.0\4ce2be0457023ff7afabd6a6024e6a84c7adcf9b\spring-retry-1.3.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-core\5.5.2\cbb11a2fd6e86c45249562b980ba532476d9cae6\spring-security-core-5.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-web\5.5.2\aa1b6fe3c48fbfbf47992633ff63b02208757d3a\spring-security-web-5.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-crypto\5.5.2\83d2198c12e74dc78a6516563dcc3e989f134b54\spring-security-crypto-5.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\2.5.4\b8d09303fa30f5102f33bcf2fa64b66be8fa39ba\spring-boot-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\2.5.4\d5028e89214b204e39e5920ae118d69293ac3d8a\spring-boot-starter-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-actuator\2.5.4\b40fa14365609203fe8fb3f9e82a0144053ccf5d\spring-boot-actuator-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-actuator\2.5.4\9893d7a13bbe0e88dd9181fbcbf2d71041276475\spring-boot-starter-actuator-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-actuator-autoconfigure\2.5.4\27eb03aac40ef4cf6c5408497cc7b3403684e7d5\spring-boot-actuator-autoconfigure-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\2.5.4\3fe555faa956fa8b63b0d0115bb0ed55e4509b5e\spring-boot-autoconfigure-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-freemarker\2.5.4\f83c4ce7ff32662a6b686812ec949e08058be7a8\spring-boot-starter-freemarker-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\2.5.4\6bf89f94c5d2455689d8649a3ead440d05e0c8f7\spring-boot-starter-json-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-log4j2\2.5.4\dc79ebe914e28db389203ae5a8f732515bd8d5e6\spring-boot-starter-log4j2-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\2.5.4\bef5da8f5610ca83dcefead706d66be09b9ef55d\spring-boot-starter-logging-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\2.5.4\2bef2cedf2e0d1038ab51a2c6154579c5945e60c\spring-boot-starter-web-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-tomcat\2.5.4\57c1254fe8630619f17ff0ed37d4ffdfd0528c20\spring-boot-starter-tomcat-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-webflux\2.5.4\8285d3112320f0c916ea431a134f35d18574d66e\spring-boot-starter-webflux-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-reactor-netty\2.5.4\2881de0506b51932fbce697972d32103e404aa6c\spring-boot-starter-reactor-netty-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-data-redis\2.5.4\423b0a2e231967a499ddb15fe0ca09f029cd4e37\spring-boot-starter-data-redis-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-data-redis-reactive\2.5.4\996368f4671ac094b1d09e3fb96183057051112a\spring-boot-starter-data-redis-reactive-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-validation\2.5.4\8acfe1b2d2a111e278ee92f10d809dd1e63a7381\spring-boot-starter-validation-2.5.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\de.codecentric\spring-boot-admin-client\2.5.0\99f4fe43df92f57298633fca4b6923cfca3ef5f1\spring-boot-admin-client-2.5.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\de.codecentric\spring-boot-admin-starter-client\2.5.0\9134bd63fe7af5b4621663ced49df57772ef1287\spring-boot-admin-starter-client-2.5.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-commons\2.5.2\25a00968c046736667e086ed9fd254f0e26e7ffc\spring-data-commons-2.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-keyvalue\2.5.2\87785ad875a4edf55b5579464a92b40901b2438\spring-data-keyvalue-2.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-redis\2.5.2\86596a82d462d870eeafbe4274b6ff41bc27b59c\spring-data-redis-2.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.session\spring-session-core\2.5.2\7a1390d1a123f1967b4b0a70aa62512c8f5a434e\spring-session-core-2.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.session\spring-session-data-redis\2.5.2\9b13fe9db58abe4af88c2d43651b6a06f5674a72\spring-session-data-redis-2.5.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.plugin\spring-plugin-core\2.0.0.RELEASE\95fc8c13037630f4aba9c51141f535becec00fe6\spring-plugin-core-2.0.0.RELEASE.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.springframework.plugin\spring-plugin-metadata\2.0.0.RELEASE\6fb3a1fc0f05dc826687b7686ad8a5960ecdd57c\spring-plugin-metadata-2.0.0.RELEASE.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba.spring\spring-context-support\1.0.11\d80d9b1103a614d2e362e06a300d1e589644895c\spring-context-support-1.0.11.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba.nacos\nacos-client\2.0.3\a73c03b466a1f1565ee2b0e459c43046d6c8c15b\nacos-client-2.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba.boot\nacos-spring-boot-base\0.2.10\c91cfc759dd3d1eef1f0d570e6d7561e963d9398\nacos-spring-boot-base-0.2.10.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba.nacos\nacos-spring-context\1.1.1\ae66bca797c1442f87914fcfe3625b7e21de2584\nacos-spring-context-1.1.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba.boot\nacos-discovery-spring-boot-starter\0.2.10\9fd196dfef04dd1e192b4e642089238111c8dd1f\nacos-discovery-spring-boot-starter-0.2.10.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba.boot\nacos-discovery-spring-boot-autoconfigure\0.2.10\2b70831b4025f1d344c95774695560ca248660fc\nacos-discovery-spring-boot-autoconfigure-0.2.10.jar;C:\Users\shimh\.m2\repository\org\opensaml\opensaml\2.6.6\opensaml-2.6.6.jar;C:\Users\shimh\.m2\repository\org\opensaml\openws\1.5.6\openws-1.5.6.jar;C:\Users\shimh\.m2\repository\org\opensaml\xmltooling\1.4.6\xmltooling-1.4.6.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\net.shibboleth.utilities\java-support\7.5.1\c3fecaa141e8f0fff8a14e6800aefa8155c9b3e8\java-support-7.5.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.nimbusds\nimbus-jose-jwt\9.4.1\19265c3d3670d24b3c4eeae8867a5ac9c654de50\nimbus-jose-jwt-9.4.1.jar;C:\Users\shimh\.m2\repository\net\jcip\jcip-annotations\1.0\jcip-annotations-1.0.jar;C:\Users\shimh\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\net.minidev\asm\1.0.2\49f3068a4591b4aa6af553905ff2145685a21c2c\asm-1.0.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.xkcoding.http\simple-http\1.0.3\620716509bc168169d65b162c9afe651ce3317fc\simple-http-1.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\me.zhyd.oauth\JustAuth\1.16.3\2bcbf77123c43cd764d4cbece1eb064e53fae066\JustAuth-1.16.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.javassist\javassist\3.23.0-GA\5c71cd6815cc207379639aca8c88478b7e959e35\javassist-3.23.0-GA.jar;C:\Users\shimh\.m2\repository\org\owasp\esapi\esapi\2.2.0.0\esapi-2.2.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.sun.mail\javax.mail\1.6.2\935151eb71beff17a2ffac15dd80184a99a0514f\javax.mail-1.6.2.jar;C:\Users\shimh\.m2\repository\org\eclipse\persistence\javax.persistence\2.2.1\javax.persistence-2.2.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\jakarta.persistence\jakarta.persistence-api\3.0.0\affc7884a85b6876d438a88b5d21ea29b1cc2dd8\jakarta.persistence-api-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\2.0.0\f3cd84cc45f583a0fdc42a8156d6c5b98d625c1a\jakarta.annotation-api-2.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\jakarta.validation\jakarta.validation-api\3.0.0\8c8eecc40da64037d7731356511c568d466f8480\jakarta.validation-api-3.0.0.jar;C:\Users\shimh\.m2\repository\javax\activation\activation\1.1.1\activation-1.1.1.jar;C:\Users\shimh\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\javax.transaction\jta\1.1\2ca09f0b36ca7d71b762e14ea2ff09d5eac57558\jta-1.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\javax.transaction\javax.transaction-api\1.3\e006adf5cf3cca2181d16bd640ecb80148ec0fce\javax.transaction-api-1.3.jar;C:\Users\shimh\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\javax.xml\jsr173\1.0\8b7a70786148944ef061fca58b5467d05dae07ba\jsr173-1.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\javax.xml.bind\jaxb-api\2.3.1\8531ad5ac454cc2deb9d4d32c40c4d7451939b5d\jaxb-api-2.3.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-core\2.3.0.1\23574ca124d0a694721ce3ef13cd720095f18fdd\jaxb-core-2.3.0.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-impl\2.3.2\9d70d9b54cbc91b0e647d97af87395f39ea189f9\jaxb-impl-2.3.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-xjc\2.3.2\264a255681ebe9f9e955182c7922a34b5f7c4578\jaxb-xjc-2.3.2.jar;C:\Users\shimh\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.64\bcpkix-jdk15on-1.64.jar;C:\Users\shimh\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.64\bcprov-jdk15on-1.64.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.bouncycastle\bcprov-ext-jdk15on\1.64\c12b7f2f963c7601d2bf85e73cef0c3d37c285bc\bcprov-ext-jdk15on-1.64.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.google.crypto.tink\tink\1.4.0\ffa0c1929461b34478f340b7a362244b9638a439\tink-1.4.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.jhlabs\filters\2.0.235-1\fff65ebe39d1097cee431087858b3caf957ecfb7\filters-2.0.235-1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.github.penggle\kaptcha\2.3.2\a3e13fd05bae905d67eafb40b712a1b624daef3b\kaptcha-2.3.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.8.7\69d9503ea0a40ee16f0bcdac7e3eaf83d0fa914a\gson-2.8.7.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.reactivestreams\reactive-streams\1.0.3\d9fb7a7926ffa635b3dcaa5049fb2bfa25b3e7d0\reactive-streams-1.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.projectreactor\reactor-core\3.4.9\820332aa7b0fe3a8dfe14f58fc16e49ad178291\reactor-core-3.4.9.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\eu.tekul\szxcvbn_2.9.2\0.2\cfac462aed38c7c0267a06993a3e3c2656807aae\szxcvbn_2.9.2-0.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.quartz-scheduler\quartz\2.3.2\18a6d6b5a40b77bd060b34cb9f2acadc4bae7c8a\quartz-2.3.2.jar;C:\Users\shimh\.m2\repository\mysql\mysql-connector-java\8.0.21\mysql-connector-java-8.0.21.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.postgresql\postgresql\42.2.20\36cc2142f46e8f4b77ffc1840ada1ba33d96324f\postgresql-42.2.20.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba\druid\1.2.6\c06ad210f56d63ebac26f5508c2ba75e3e4f0ed4\druid-1.2.6.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba\druid-spring-boot-starter\1.2.6\28810b3da562b2e9eee21ef5280ea166ae17d409\druid-spring-boot-starter-1.2.6.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\redis.clients\jedis\3.6.3\74b7e8963b1f40e00097869a1d72f04626f1ac72\jedis-3.6.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.ehcache\ehcache\3.9.5\6a1393809ab560929de723cb23248d8c82edb6a9\ehcache-3.9.5.jar;C:\Users\shimh\.m2\repository\org\mybatis\mybatis\3.5.7\mybatis-3.5.7.jar;C:\Users\shimh\.m2\repository\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.hibernate.validator\hibernate-validator\6.2.0.Final\d6b0760dfffbf379cedd02f715ff4c9a2e215921\hibernate-validator-6.2.0.Final.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.hibernate.validator\hibernate-validator-annotation-processor\6.2.0.Final\12cfe563dfc56a0f7e767b290e5d9979a6f3e615\hibernate-validator-annotation-processor-6.2.0.Final.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\joda-time\joda-time\2.10.10\29e8126e31f41e5c12b9fe3a7eb02e704c47d70b\joda-time-2.10.10.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.29\6d0cdafb2010f1297e574656551d7145240f6e25\snakeyaml-1.29.jar;C:\Users\shimh\.m2\repository\net\sourceforge\nekohtml\nekohtml\1.9.22\nekohtml-1.9.22.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.jdom\jdom\2.0.2\d06c71e0df0ac4b94deb737718580ccce22d92e8\jdom-2.0.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.google.zxing\core\3.4.1\1869da97e9b2b60b5ff2fcaf55899174b93ae25d\core-3.4.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\30.1.1-jre\87e0fd1df874ea3cbe577702fe6f17068b790fd8\guava-30.1.1-jre.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\ognl\ognl\3.2.14\18178dd7cfcb8b81c262c072b60a5bf701073917\ognl-3.2.14.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\cglib\cglib\3.3.0\c956b9f9708af5901e9cf05701e9b2b1c25027cc\cglib-3.3.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\7.3.1\7ec32f922315924e82bf58b36ee1b673b2a9b820\asm-7.3.1.jar;C:\Users\shimh\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.aspectj\aspectjtools\1.9.4\b907e51a8a6820926785b8933be3de4a021da90b\aspectjtools-1.9.4.jar;C:\Users\shimh\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\shimh\.m2\repository\xalan\serializer\2.7.2\serializer-2.7.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\xml-resolver\xml-resolver\1.2\3d0f97750b3a03e0971831566067754ba4bfd68c\xml-resolver-1.2.jar;C:\Users\shimh\.m2\repository\org\apache\santuario\xmlsec\1.5.8\xmlsec-1.5.8.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.ogce\xpp3\1.1.6\dc87e00ddb69341b46a3eb1c331c6fcebf6c8546\xpp3-1.1.6.jar;C:\Users\shimh\.m2\repository\com\thoughtworks\xstream\xstream\1.4.10\xstream-1.4.10.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.passay\passay\1.6.0\a7cafb7cdfc89db3a423c817259354e17d1776da\passay-1.6.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-core\1.6.4\f91b9be9301947483ee3ab7f0874c1dad3cb04f7\micrometer-core-1.6.4.jar;C:\Users\shimh\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.codehaus.woodstox\stax2-api\4.2.1\a3f7325c52240418c2ba257b103c3c550e140c83\stax2-api-4.2.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.reflections\reflections\0.9.11\4c686033d918ec1727e329b7222fcb020152e32b\reflections-0.9.11.jar;C:\Users\shimh\.m2\repository\io\prometheus\simpleclient\0.5.0\simpleclient-0.5.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.aliyun\aliyun-java-sdk-core\4.5.1\eab719bdb3a1961fd07f3053888f9510f08a48d\aliyun-java-sdk-core-4.5.1.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.tencentcloudapi\tencentcloud-sdk-java\3.1.33\126415506014ecb679cb004ee1028bf8da1a75c5\tencentcloud-sdk-java-3.1.33.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.12.4\69206e02e6a696034f06a59d3ddbfbba5a4cd81\jackson-databind-2.12.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.12.4\6a1bd259b6c4e3f9219ec8ec0be55ed11eed0c\jackson-core-2.12.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.12.4\752cf9a2562ac2c012e48057e3a4c17dad66c66e\jackson-annotations-2.12.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.12.4\858a1e1b677cbafd3b100d5154f491a7051401c\jackson-datatype-jdk8-2.12.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.12.4\b1174c05d4ded121a7eaeed3f148709f9585b981\jackson-datatype-jsr310-2.12.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.dataformat\jackson-dataformat-yaml\2.12.4\2a3cecd4c46a51ebf3bf92ccf229a07f7ef09d86\jackson-dataformat-yaml-2.12.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.dataformat\jackson-dataformat-xml\2.12.4\15c743856696c0239f2c51d8d19d9f97f034713\jackson-dataformat-xml-2.12.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.12.4\87c4e9a3302f0fafe4e5587f9c27d22847d8fe00\jackson-module-parameter-names-2.12.4.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.fasterxml\classmate\1.5.0\bc2d1d55f28e6dc0801d86cbd195debd81090d33\classmate-1.5.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.alibaba\fastjson\1.2.78\119651d0f0d9cd5bfb35e8885a447e957cdc3a29\fastjson-1.2.78.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\org.mapstruct\mapstruct\1.4.1.Final\9f87c0a8e5ee39ced552f6a257a425a4798600ca\mapstruct-1.4.1.Final.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.swagger\swagger-annotations\1.6.2\313913e603eaf3bb2c3b05079046ec07bb61f8c6\swagger-annotations-1.6.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.swagger\swagger-models\1.6.2\887697058d8464462e8fd6d23c8461e90aec8c08\swagger-models-1.6.2.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-annotations\2.1.10\1eec58d3db42dcefac76fa47211812c4782b1342\swagger-annotations-2.1.10.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-core\2.1.10\2400f32e387ade9ca015552d9ac23d1139c9884d\swagger-core-2.1.10.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-integration\2.1.10\1b1080f45e949cef4ad6a2ea083d8675ba50d056\swagger-integration-2.1.10.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-models\2.1.10\e577371a45e67ee22fa3b31675ff8a333054de4b\swagger-models-2.1.10.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-bean-validators\3.0.0\80c646fdebe5f2b2b337a5a686e540fee0b7304f\springfox-bean-validators-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-core\3.0.0\7c3367ce577c8acd9bf64c74488c9269253516c9\springfox-core-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-data-rest\3.0.0\40f5e834d6696ae1d3212fa5a2d5e1ec406bedc0\springfox-data-rest-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-spi\3.0.0\bae0b820d4b5a922063d34a42aaf4f763308b828\springfox-spi-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-oas\3.0.0\e7bc9c1319cf1b64ae714a249c3db3b8fe01e42b\springfox-oas-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-schema\3.0.0\32c5d6965617830ef6480fadb9030008945bcd9c\springfox-schema-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-swagger2\3.0.0\7bcb18d496576eff76ef7bb72684e149cbb75c1d\springfox-swagger2-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-swagger-ui\3.0.0\1e665fbe22148f7c36fa8a08e515a0047cd4390b\springfox-swagger-ui-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-swagger-common\3.0.0\2e2fae840984cfcabfd50e1b4b1c23422135ba12\springfox-swagger-common-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-spring-webmvc\3.0.0\7ed22363fdfd651cd811c0b2391f16bddb91db8b\springfox-spring-webmvc-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-spring-web\3.0.0\a76f2fbe805bfd2798e20dc8f2cfbfad554d52da\springfox-spring-web-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-spring-webflux\3.0.0\efccbcfe1d23f2ba520bd87cc156bf2b81f3568e\springfox-spring-webflux-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\io.springfox\springfox-boot-starter\3.0.0\5486365e263f8acca014b97efa50c3419d58e8f6\springfox-boot-starter-3.0.0.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.github.xiaoymin\knife4j-annotations\3.0.3\e814d0d192d9b1ad306537dbe74e29af14e991e6\knife4j-annotations-3.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.github.xiaoymin\knife4j-core\3.0.3\b5eba57b65f905dea6b4bd56ba4ebe7044b63585\knife4j-core-3.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.github.xiaoymin\knife4j-spring-mvc\3.0.3\7f18f32504cd2773e4366d8f54050aa454f2223\knife4j-spring-mvc-3.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.github.xiaoymin\knife4j-spring\3.0.3\f98ce132857d7d84acb6d51c9eca71dc572678cd\knife4j-spring-3.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.github.xiaoymin\knife4j-spring-ui\3.0.3\7967bc0fde5e52047c776ec9a1c548322779f42\knife4j-spring-ui-3.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.github.xiaoymin\knife4j-spring-boot-starter\3.0.3\1be417f97528ac35dc77d5406fdf7f84b81186c6\knife4j-spring-boot-starter-3.0.3.jar;C:\Users\shimh\.gradle\caches\modules-2\files-2.1\com.github.xiaoymin\knife4j-spring-boot-autoconfigure\3.0.3\c86fca99f7758738e9c182130047403a8d01aac7\knife4j-spring-boot-autoconfigure-3.0.3.jar;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-lib\hgjdbc-6.0.4-jdbc42.jar;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-lib\maxkey-client-sdk-2.0.0.RELEASE.jar;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-lib\mybatis-jpa-extra-2.4.jar;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-lib\mybatis-jpa-extra-spring-boot-starter-2.4.jar;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-lib\not-yet-commons-ssl-0.3.9.jar;D:\MaxKey\Workspaces\maxkey\MaxKey\maxkey-lib\taobao-sdk-java-auto_1479188381469-20210326.jar
\ No newline at end of file
......@@ -31,9 +31,11 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("org.maxkey.persistence.mapper,")
public class MaxKeyApplication extends SpringBootServletInitializer {
private static final Logger _logger = LoggerFactory.getLogger(MaxKeyApplication.class);
......
......@@ -37,7 +37,6 @@ import org.maxkey.authn.support.kerberos.RemoteKerberosService;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.configuration.EmailConfig;
import org.maxkey.constants.ConstantsPersistence;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.maxkey.password.onetimepwd.algorithm.KeyUriFormat;
import org.maxkey.password.onetimepwd.impl.MailOtpAuthn;
......@@ -61,14 +60,12 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
@ComponentScan(basePackages = {
"org.maxkey.configuration",
"org.maxkey.domain",
......@@ -172,7 +169,7 @@ public class MaxKeyConfig implements InitializingBean {
@Value("${maxkey.support.ldap.credentials}")String credentials,
@Value("${maxkey.support.ldap.filter}")String filter,
@Value("${maxkey.support.ldap.basedn}")String baseDN,
@Value("${maxkey.support.ldap.domain}")String domain,
@Value("${maxkey.support.ldap.activedirectory.domain}")String domain,
@Value("${maxkey.support.ldap.product:openldap}")String product) {
AbstractAuthenticationRealm ldapAuthenticationRealm =
ldapAuthenticationRealm(
......
......@@ -25,7 +25,6 @@ import org.maxkey.authn.support.kerberos.KerberosService;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.authn.support.rememberme.HttpRemeberMeEntryPoint;
import org.maxkey.configuration.ApplicationConfig;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.web.interceptor.HistoryLoginAppAdapter;
import org.maxkey.web.interceptor.HistoryLogsAdapter;
import org.maxkey.web.interceptor.PermissionAdapter;
......@@ -36,7 +35,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
......@@ -45,7 +43,6 @@ import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
@Configuration
@EnableWebMvc
@PropertySource(ConstantsProperties.applicationPropertySource)
public class MaxKeyMvcConfig implements WebMvcConfigurer {
private static final Logger _logger = LoggerFactory.getLogger(MaxKeyMvcConfig.class);
......
......@@ -23,7 +23,10 @@ server.port=8080
server.servlet.session.timeout=1800
#server context path
server.servlet.context-path=/maxkey
#nacos
spring.cloud.nacos.discovery.enabled=false
spring.cloud.nacos.discovery.instance-enabled=false
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
############################################################################
#domain name configuration #
############################################################################
......@@ -34,7 +37,8 @@ maxkey.server.name=${maxkey.server.scheme}://${maxkey.server.domain}
maxkey.server.uri=${maxkey.server.name}/maxkey
#default.uri
maxkey.server.default.uri=${maxkey.server.uri}/maxkey/appList
maxkey.server.management.uri=${maxkey.server.name}:9521/maxkey-mgt/login
maxkey.server.mgt.uri=${maxkey.server.name}:9527/maxkey-mgt/login
maxkey.server.authz.uri=${maxkey.server.name}/maxkey
#InMemory 0 , Redis 2
maxkey.server.persistence=0
#identity
......@@ -112,26 +116,26 @@ mybatis.table-column-case=lowercase
############################################################################
#redis server configuration #
############################################################################
#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
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 configuration #
############################################################################
#spring.mail.default-encoding=utf-8
#spring.mail.host=smtp.163.com
#spring.mail.port=465
#spring.mail.username=maxkey@163.com
#spring.mail.password=password
#spring.mail.protocol=smtp
#spring.mail.properties.ssl=true
#spring.mail.properties.sender=maxkey@163.com
spring.mail.default-encoding=utf-8
spring.mail.host=smtp.163.com
spring.mail.port=465
spring.mail.username=maxkey@163.com
spring.mail.password=password
spring.mail.protocol=smtp
spring.mail.properties.ssl=true
spring.mail.properties.sender=maxkey@163.com
spring.mail.properties.mailotp.message.subject=MaxKey One Time PassWord
spring.mail.properties.mailotp.message.template={0} You Token is {1} , it validity in {2} minutes.
spring.mail.properties.mailotp.message.type=html
......
......@@ -23,7 +23,10 @@ server.port=443
server.servlet.session.timeout=1800
#server context path
server.servlet.context-path=/maxkey
#nacos
spring.cloud.nacos.discovery.enabled=false
spring.cloud.nacos.discovery.instance-enabled=false
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
############################################################################
#domain name configuration #
############################################################################
......@@ -34,7 +37,8 @@ maxkey.server.name=${maxkey.server.scheme}://${maxkey.server.domain}
maxkey.server.uri=${maxkey.server.name}/maxkey
#default.uri
maxkey.server.default.uri=${maxkey.server.uri}/maxkey/appList
maxkey.server.management.uri=${maxkey.server.name}:9521/maxkey-mgt/login
maxkey.server.mgt.uri=${maxkey.server.name}:9527/maxkey-mgt/login
maxkey.server.authz.uri=${maxkey.server.name}/maxkey
#InMemory 0 , Redis 2
maxkey.server.persistence=0
#identity
......
......@@ -18,7 +18,13 @@
application.title=MaxKey
application.name=MaxKey
application.formatted-version=v2.9.0 GA
#for dynamic service discovery
spring.application.name=maxkey
############################################################################
#Main.banner-mode configuration #
############################################################################
spring.main.banner-mode=log
spring.main.allow-bean-definition-overriding=true
############################################################################
#spring.profiles.active https/http; default https #
############################################################################
......
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# Nacos \u63A7\u5236\u53F0\u6DFB\u52A0\u914D\u7F6E\uFF1A
# Data ID\uFF1Amaxkey.properties
# Group\uFF1ADEFAULT_GROUP
# \u914D\u7F6E\u5185\u5BB9\uFF1AuseLocalCache=true
spring.application.name=maxkey
# \u6307\u5B9A\u914D\u7F6E\u7684\u540E\u7F00\uFF0C\u652F\u6301 properties\u3001yaml\u3001yml\uFF0C\u9ED8\u8BA4\u4E3A properties
spring.cloud.nacos.config.file-extension=properties
#spring.cloud.nacos.config.file-extension=yaml
#\u662F\u5426\u542F\u7528nacos\u914D\u7F6E
spring.cloud.nacos.config.enabled=false
\ No newline at end of file
......@@ -23,6 +23,7 @@
<Logger level="INFO" name="org.springframework" ></Logger>
<Logger level="INFO" name="org.apache.logging" ></Logger>
<Logger level="DEBUG" name="org.maxkey" ></Logger>
<Logger level="ERROR" name="org.reflections.Reflections" ></Logger>
<Root level="INFO">
<AppenderRef ref="consolePrint" />
......
......@@ -28,6 +28,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
......@@ -55,6 +56,7 @@ import org.springframework.context.annotation.ComponentScan;
})
@MapperScan("org.maxkey.persistence.mapper,")
@SpringBootApplication
@EnableDiscoveryClient
public class MaxKeyMgtApplication extends SpringBootServletInitializer {
private static final Logger _logger = LoggerFactory.getLogger(MaxKeyMgtApplication.class);
......
......@@ -24,7 +24,6 @@ import org.maxkey.authz.oauth2.provider.token.TokenStore;
import org.maxkey.authz.oauth2.provider.token.store.InMemoryTokenStore;
import org.maxkey.authz.oauth2.provider.token.store.JdbcTokenStore;
import org.maxkey.authz.oauth2.provider.token.store.RedisTokenStore;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.jobs.DynamicGroupsJob;
import org.maxkey.password.onetimepwd.AbstractOtpAuthn;
import org.maxkey.password.onetimepwd.impl.TimeBasedOtpAuthn;
......@@ -51,13 +50,11 @@ 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.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
public class MaxKeyMgtConfig implements InitializingBean {
private static final Logger _logger = LoggerFactory.getLogger(MaxKeyMgtConfig.class);
......
......@@ -108,7 +108,7 @@ public class SAML20DetailsController extends BaseAppContorller {
decoderSecret(saml20Details);
WebContext.setAttribute(saml20Details.getId(), saml20Details.getIcon());
modelAndView.addObject("model",saml20Details);
modelAndView.addObject("maxKeyURI",applicationConfig.getMaxKeyUri());
modelAndView.addObject("authzURI",applicationConfig.getAuthzUri());
return modelAndView;
}
/**
......
......@@ -19,7 +19,10 @@
server.port=9527
#server context path
server.servlet.context-path=/maxkey-mgt
#nacos
spring.cloud.nacos.discovery.enabled=false
spring.cloud.nacos.discovery.instance-enabled=false
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
############################################################################
#domain name configuration #
############################################################################
......@@ -30,7 +33,8 @@ maxkey.server.name=${maxkey.server.scheme}://${maxkey.server.domain}
maxkey.server.uri=${maxkey.server.name}:9527/maxkey-mgt
#default.uri
maxkey.server.default.uri=${maxkey.server.uri}/main
maxkey.maxkey.uri=https://${maxkey.server.domain}/maxkey
maxkey.server.mgt.uri=${maxkey.server.name}:9527/maxkey-mgt
maxkey.server.authz.uri=https://${maxkey.server.domain}/maxkey
#InMemory 0 , Redis 2
maxkey.server.persistence=0
#identity
......@@ -96,26 +100,26 @@ mybatis.table-column-case=lowercase
############################################################################
#redis server configuration #
############################################################################
#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
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 configuration #
############################################################################
#spring.mail.default-encoding=utf-8
#spring.mail.host=smtp.163.com
#spring.mail.port=465
#spring.mail.username=maxkey@163.com
#spring.mail.password=password
#spring.mail.protocol=smtp
#spring.mail.properties.ssl=true
#spring.mail.properties.sender=maxkey@163.com
spring.mail.default-encoding=utf-8
spring.mail.host=smtp.163.com
spring.mail.port=465
spring.mail.username=maxkey@163.com
spring.mail.password=password
spring.mail.protocol=smtp
spring.mail.properties.ssl=true
spring.mail.properties.sender=maxkey@163.com
############################################################################
#Spring Session configuration #
......
......@@ -18,7 +18,13 @@
application.title=MaxKey
application.name=MaxKey-Mgt
application.formatted-version=v2.9.0 GA
#for dynamic service discovery
spring.application.name=maxkey-mgt
############################################################################
#Main.banner-mode configuration #
############################################################################
spring.main.banner-mode=log
spring.main.allow-bean-definition-overriding=true
############################################################################
#spring.profiles.active http; default http #
############################################################################
......
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# Nacos \u63A7\u5236\u53F0\u6DFB\u52A0\u914D\u7F6E\uFF1A
# Data ID\uFF1Amaxkey-mgt.properties
# Group\uFF1ADEFAULT_GROUP
# \u914D\u7F6E\u5185\u5BB9\uFF1A
spring.application.name=maxkey-mgt
# \u6307\u5B9A\u914D\u7F6E\u7684\u540E\u7F00\uFF0C\u652F\u6301 properties\u3001yaml\u3001yml\uFF0C\u9ED8\u8BA4\u4E3A properties
spring.cloud.nacos.config.file-extension=properties
#spring.cloud.nacos.config.file-extension=yaml
#\u662F\u5426\u542F\u7528nacos\u914D\u7F6E
spring.cloud.nacos.config.enabled=false
\ No newline at end of file
......@@ -24,6 +24,7 @@
<Logger level="INFO" name="org.apache.logging" ></Logger>
<Logger level="DEBUG" name="org.maxkey" ></Logger>
<Logger level="DEBUG" name="org.apache.mybatis.jpa" ></Logger>
<Logger level="ERROR" name="org.reflections.Reflections" ></Logger>
<Root level="INFO">
<AppenderRef ref="consolePrint" />
......
......@@ -55,7 +55,7 @@
</td>
<td></td>
<td >
<a target="_blank" href="${maxKeyURI}/metadata/saml20/Idp_Metadata_${model.id}.xml"> SAML MetaData</a>
<a target="_blank" href="${authzURI}/metadata/saml20/Idp_Metadata_${model.id}.xml"> SAML MetaData</a>
</td>
</tr>
<tr>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册