mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-08 09:58:56 +08:00
4.0.2
This commit is contained in:
parent
b8838cbae8
commit
ce87d209c1
@ -28,7 +28,7 @@ ext {
|
|||||||
def libjarsmapper=[
|
def libjarsmapper=[
|
||||||
'maxkey-authentication-captcha' :'lib',
|
'maxkey-authentication-captcha' :'lib',
|
||||||
'maxkey-authentication-core' :'lib',
|
'maxkey-authentication-core' :'lib',
|
||||||
'maxkey-authentication-ip2region' :'lib',
|
'maxkey-authentication-ip2location' :'lib',
|
||||||
'maxkey-authentication-otp' :'lib',
|
'maxkey-authentication-otp' :'lib',
|
||||||
'maxkey-authentication-provider' :'lib',
|
'maxkey-authentication-provider' :'lib',
|
||||||
'maxkey-authentication-sms' :'lib',
|
'maxkey-authentication-sms' :'lib',
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
# */
|
# */
|
||||||
#maxkey properties
|
#maxkey properties
|
||||||
group =org.dromara.maxkey
|
group =org.dromara.maxkey
|
||||||
version =4.0.1
|
version =4.0.2
|
||||||
vendor =https://www.maxkey.top
|
vendor =https://www.maxkey.top
|
||||||
author =MaxKeyTop
|
author =MaxKeyTop
|
||||||
|
|
||||||
|
|||||||
@ -89,7 +89,7 @@ public class ApplicationAutoConfiguration implements InitializingBean {
|
|||||||
@Bean
|
@Bean
|
||||||
public PasswordEncoder passwordEncoder(
|
public PasswordEncoder passwordEncoder(
|
||||||
@Value("${maxkey.crypto.password.encoder:bcrypt}") String idForEncode) {
|
@Value("${maxkey.crypto.password.encoder:bcrypt}") String idForEncode) {
|
||||||
Map<String ,PasswordEncoder > encoders = new HashMap<String ,PasswordEncoder>();
|
Map<String ,PasswordEncoder > encoders = new HashMap<>();
|
||||||
encoders.put("bcrypt", new BCryptPasswordEncoder());
|
encoders.put("bcrypt", new BCryptPasswordEncoder());
|
||||||
encoders.put("plain", NoOpPasswordEncoder.getInstance());
|
encoders.put("plain", NoOpPasswordEncoder.getInstance());
|
||||||
encoders.put("pbkdf2", Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8());
|
encoders.put("pbkdf2", Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8());
|
||||||
@ -174,8 +174,8 @@ public class ApplicationAutoConfiguration implements InitializingBean {
|
|||||||
@Value("${maxkey.id.datacenterId:0}") int datacenterId,
|
@Value("${maxkey.id.datacenterId:0}") int datacenterId,
|
||||||
@Value("${maxkey.id.machineId:0}") int machineId) {
|
@Value("${maxkey.id.machineId:0}") int machineId) {
|
||||||
IdGenerator idGenerator = new IdGenerator(strategy);
|
IdGenerator idGenerator = new IdGenerator(strategy);
|
||||||
SnowFlakeId SnowFlakeId = new SnowFlakeId(datacenterId,machineId);
|
SnowFlakeId snowFlakeId = new SnowFlakeId(datacenterId,machineId);
|
||||||
idGenerator.setSnowFlakeId(SnowFlakeId);
|
idGenerator.setSnowFlakeId(snowFlakeId);
|
||||||
WebContext.idGenerator = idGenerator;
|
WebContext.idGenerator = idGenerator;
|
||||||
return idGenerator;
|
return idGenerator;
|
||||||
}
|
}
|
||||||
@ -184,14 +184,13 @@ public class ApplicationAutoConfiguration implements InitializingBean {
|
|||||||
@Bean
|
@Bean
|
||||||
public MomentaryService momentaryService(
|
public MomentaryService momentaryService(
|
||||||
RedisConnectionFactory redisConnFactory,
|
RedisConnectionFactory redisConnFactory,
|
||||||
@Value("${maxkey.server.persistence}") int persistence) throws JOSEException {
|
@Value("${maxkey.server.persistence}") int persistence) {
|
||||||
MomentaryService momentaryService;
|
MomentaryService momentaryService;
|
||||||
if (persistence == ConstsPersistence.REDIS) {
|
if (persistence == ConstsPersistence.REDIS) {
|
||||||
momentaryService = new RedisMomentaryService(redisConnFactory);
|
momentaryService = new RedisMomentaryService(redisConnFactory);
|
||||||
}else {
|
}else {
|
||||||
momentaryService = new InMemoryMomentaryService();
|
momentaryService = new InMemoryMomentaryService();
|
||||||
}
|
}
|
||||||
|
|
||||||
return momentaryService;
|
return momentaryService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -75,11 +75,10 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
public ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource(
|
public ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource(
|
||||||
@Value("${spring.messages.basename:classpath:messages/message}")
|
@Value("${spring.messages.basename:classpath:messages/message}")
|
||||||
String messagesBasename) {
|
String messagesBasename) {
|
||||||
_logger.debug("Basename " + messagesBasename);
|
_logger.debug("Basename {}" , messagesBasename);
|
||||||
String passwordPolicyMessagesBasename="classpath:messages/passwordpolicy_message";
|
String passwordPolicyMessagesBasename="classpath:messages/passwordpolicy_message";
|
||||||
|
|
||||||
ReloadableResourceBundleMessageSource messageSource =
|
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
|
||||||
new ReloadableResourceBundleMessageSource();
|
|
||||||
messageSource.setBasenames(messagesBasename,passwordPolicyMessagesBasename);
|
messageSource.setBasenames(messagesBasename,passwordPolicyMessagesBasename);
|
||||||
messageSource.setUseCodeAsDefaultMessage(false);
|
messageSource.setUseCodeAsDefaultMessage(false);
|
||||||
return messageSource;
|
return messageSource;
|
||||||
@ -92,27 +91,11 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
//@Primary
|
//@Primary
|
||||||
@Bean (name = "localeChangeInterceptor")
|
@Bean (name = "localeChangeInterceptor")
|
||||||
public LocaleChangeInterceptor localeChangeInterceptor() {
|
public LocaleChangeInterceptor localeChangeInterceptor() {
|
||||||
LocaleChangeInterceptor localeChangeInterceptor =
|
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
|
||||||
new LocaleChangeInterceptor();
|
|
||||||
localeChangeInterceptor.setParamName("language");
|
localeChangeInterceptor.setParamName("language");
|
||||||
return localeChangeInterceptor;
|
return localeChangeInterceptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* upload file support .
|
|
||||||
* @return multipartResolver
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
@Bean (name = "multipartResolver")
|
|
||||||
public CommonsMultipartResolver commonsMultipartResolver(
|
|
||||||
@Value("${spring.servlet.multipart.max-file-size:0}") int maxUploadSize) {
|
|
||||||
_logger.debug("maxUploadSize " + maxUploadSize);
|
|
||||||
CommonsMultipartResolver multipartResolver =
|
|
||||||
new CommonsMultipartResolver();
|
|
||||||
multipartResolver.setMaxUploadSize(maxUploadSize);
|
|
||||||
return multipartResolver;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* handlerMapping .
|
* handlerMapping .
|
||||||
* @return handlerMapping
|
* @return handlerMapping
|
||||||
@ -120,8 +103,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
@Bean (name = "handlerMapping")
|
@Bean (name = "handlerMapping")
|
||||||
public RequestMappingHandlerMapping requestMappingHandlerMapping(
|
public RequestMappingHandlerMapping requestMappingHandlerMapping(
|
||||||
LocaleChangeInterceptor localeChangeInterceptor) {
|
LocaleChangeInterceptor localeChangeInterceptor) {
|
||||||
RequestMappingHandlerMapping requestMappingHandlerMapping =
|
RequestMappingHandlerMapping requestMappingHandlerMapping = new RequestMappingHandlerMapping();
|
||||||
new RequestMappingHandlerMapping();
|
|
||||||
requestMappingHandlerMapping.setInterceptors(localeChangeInterceptor);
|
requestMappingHandlerMapping.setInterceptors(localeChangeInterceptor);
|
||||||
return requestMappingHandlerMapping;
|
return requestMappingHandlerMapping;
|
||||||
}
|
}
|
||||||
@ -144,15 +126,14 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
@Bean (name = "marshallingHttpMessageConverter")
|
@Bean (name = "marshallingHttpMessageConverter")
|
||||||
public MarshallingHttpMessageConverter marshallingHttpMessageConverter(
|
public MarshallingHttpMessageConverter marshallingHttpMessageConverter(
|
||||||
Jaxb2Marshaller jaxb2Marshaller) {
|
Jaxb2Marshaller jaxb2Marshaller) {
|
||||||
MarshallingHttpMessageConverter marshallingHttpMessageConverter =
|
MarshallingHttpMessageConverter marshallingHttpMessageConverter = new MarshallingHttpMessageConverter();
|
||||||
new MarshallingHttpMessageConverter();
|
|
||||||
marshallingHttpMessageConverter.setMarshaller(jaxb2Marshaller);
|
marshallingHttpMessageConverter.setMarshaller(jaxb2Marshaller);
|
||||||
marshallingHttpMessageConverter.setUnmarshaller(jaxb2Marshaller);
|
marshallingHttpMessageConverter.setUnmarshaller(jaxb2Marshaller);
|
||||||
ArrayList<MediaType> mediaTypesList = new ArrayList<MediaType>();
|
ArrayList<MediaType> mediaTypesList = new ArrayList<>();
|
||||||
mediaTypesList.add(MediaType.APPLICATION_XML);
|
mediaTypesList.add(MediaType.APPLICATION_XML);
|
||||||
mediaTypesList.add(MediaType.TEXT_XML);
|
mediaTypesList.add(MediaType.TEXT_XML);
|
||||||
mediaTypesList.add(MediaType.TEXT_PLAIN);
|
mediaTypesList.add(MediaType.TEXT_PLAIN);
|
||||||
_logger.debug("marshallingHttpMessageConverter MediaTypes " + mediaTypesList);
|
_logger.debug("marshallingHttpMessageConverter MediaTypes {}" , mediaTypesList);
|
||||||
marshallingHttpMessageConverter.setSupportedMediaTypes(mediaTypesList);
|
marshallingHttpMessageConverter.setSupportedMediaTypes(mediaTypesList);
|
||||||
return marshallingHttpMessageConverter;
|
return marshallingHttpMessageConverter;
|
||||||
}
|
}
|
||||||
@ -163,14 +144,13 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
*/
|
*/
|
||||||
@Bean (name = "mappingJacksonHttpMessageConverter")
|
@Bean (name = "mappingJacksonHttpMessageConverter")
|
||||||
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
|
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
|
||||||
MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter =
|
MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter = new MappingJackson2HttpMessageConverter();
|
||||||
new MappingJackson2HttpMessageConverter();
|
ArrayList<MediaType> mediaTypesList = new ArrayList<>();
|
||||||
ArrayList<MediaType> mediaTypesList = new ArrayList<MediaType>();
|
|
||||||
mediaTypesList.add(MediaType.APPLICATION_JSON);
|
mediaTypesList.add(MediaType.APPLICATION_JSON);
|
||||||
mediaTypesList.add(MediaType.valueOf(ApiVersion.V2.getProducedMimeType().toString()));
|
mediaTypesList.add(MediaType.valueOf(ApiVersion.V2.getProducedMimeType().toString()));
|
||||||
mediaTypesList.add(MediaType.valueOf(ApiVersion.V3.getProducedMimeType().toString()));
|
mediaTypesList.add(MediaType.valueOf(ApiVersion.V3.getProducedMimeType().toString()));
|
||||||
//mediaTypesList.add(MediaType.TEXT_PLAIN);
|
//mediaTypesList.add(MediaType.TEXT_PLAIN);
|
||||||
_logger.debug("mappingJacksonHttpMessageConverter MediaTypes " + mediaTypesList);
|
_logger.debug("mappingJacksonHttpMessageConverter MediaTypes {}" , mediaTypesList);
|
||||||
mappingJacksonHttpMessageConverter.setSupportedMediaTypes(mediaTypesList);
|
mappingJacksonHttpMessageConverter.setSupportedMediaTypes(mediaTypesList);
|
||||||
return mappingJacksonHttpMessageConverter;
|
return mappingJacksonHttpMessageConverter;
|
||||||
}
|
}
|
||||||
@ -185,7 +165,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
@Value("${maxkey.server.domain:maxkey.top}")
|
@Value("${maxkey.server.domain:maxkey.top}")
|
||||||
String domainName
|
String domainName
|
||||||
) {
|
) {
|
||||||
_logger.debug("DomainName " + domainName);
|
_logger.debug("DomainName {}" , domainName);
|
||||||
CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
|
CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
|
||||||
cookieLocaleResolver.setCookieName("mxk_locale");
|
cookieLocaleResolver.setCookieName("mxk_locale");
|
||||||
cookieLocaleResolver.setCookieDomain(domainName);
|
cookieLocaleResolver.setCookieDomain(domainName);
|
||||||
@ -204,8 +184,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
MarshallingHttpMessageConverter marshallingHttpMessageConverter,
|
MarshallingHttpMessageConverter marshallingHttpMessageConverter,
|
||||||
StringHttpMessageConverter stringHttpMessageConverter,
|
StringHttpMessageConverter stringHttpMessageConverter,
|
||||||
RequestMappingHandlerAdapter requestMappingHandlerAdapter) {
|
RequestMappingHandlerAdapter requestMappingHandlerAdapter) {
|
||||||
List<HttpMessageConverter<?>> httpMessageConverterList =
|
List<HttpMessageConverter<?>> httpMessageConverterList = new ArrayList<>();
|
||||||
new ArrayList<HttpMessageConverter<?>>();
|
|
||||||
httpMessageConverterList.add(mappingJacksonHttpMessageConverter);
|
httpMessageConverterList.add(mappingJacksonHttpMessageConverter);
|
||||||
httpMessageConverterList.add(marshallingHttpMessageConverter);
|
httpMessageConverterList.add(marshallingHttpMessageConverter);
|
||||||
httpMessageConverterList.add(stringHttpMessageConverter);
|
httpMessageConverterList.add(stringHttpMessageConverter);
|
||||||
@ -224,8 +203,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter,
|
MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter,
|
||||||
MarshallingHttpMessageConverter marshallingHttpMessageConverter) {
|
MarshallingHttpMessageConverter marshallingHttpMessageConverter) {
|
||||||
RestTemplate restTemplate = new RestTemplate();
|
RestTemplate restTemplate = new RestTemplate();
|
||||||
List<HttpMessageConverter<?>> httpMessageConverterList =
|
List<HttpMessageConverter<?>> httpMessageConverterList = new ArrayList<>();
|
||||||
new ArrayList<HttpMessageConverter<?>>();
|
|
||||||
httpMessageConverterList.add(mappingJacksonHttpMessageConverter);
|
httpMessageConverterList.add(mappingJacksonHttpMessageConverter);
|
||||||
httpMessageConverterList.add(marshallingHttpMessageConverter);
|
httpMessageConverterList.add(marshallingHttpMessageConverter);
|
||||||
restTemplate.setMessageConverters(httpMessageConverterList);
|
restTemplate.setMessageConverters(httpMessageConverterList);
|
||||||
@ -279,7 +257,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
@Bean
|
@Bean
|
||||||
public FilterRegistrationBean<Filter> delegatingFilterProxy() {
|
public FilterRegistrationBean<Filter> delegatingFilterProxy() {
|
||||||
_logger.debug("delegatingFilterProxy init for /* ");
|
_logger.debug("delegatingFilterProxy init for /* ");
|
||||||
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<Filter>();
|
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>();
|
||||||
registrationBean.setFilter(new DelegatingFilterProxy("securityContextHolderAwareRequestFilter"));
|
registrationBean.setFilter(new DelegatingFilterProxy("securityContextHolderAwareRequestFilter"));
|
||||||
registrationBean.addUrlPatterns("/*");
|
registrationBean.addUrlPatterns("/*");
|
||||||
//registrationBean.
|
//registrationBean.
|
||||||
@ -292,7 +270,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
@Bean
|
@Bean
|
||||||
public FilterRegistrationBean<Filter> webXssRequestFilter() {
|
public FilterRegistrationBean<Filter> webXssRequestFilter() {
|
||||||
_logger.debug("webXssRequestFilter init for /* ");
|
_logger.debug("webXssRequestFilter init for /* ");
|
||||||
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<Filter>(new WebXssRequestFilter());
|
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>(new WebXssRequestFilter());
|
||||||
registrationBean.addUrlPatterns("/*");
|
registrationBean.addUrlPatterns("/*");
|
||||||
registrationBean.setName("webXssRequestFilter");
|
registrationBean.setName("webXssRequestFilter");
|
||||||
registrationBean.setOrder(3);
|
registrationBean.setOrder(3);
|
||||||
@ -300,12 +278,12 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public FilterRegistrationBean<Filter> WebInstRequestFilter(
|
public FilterRegistrationBean<Filter> webInstRequestFilter(
|
||||||
InstitutionsRepository institutionsRepository,
|
InstitutionsRepository institutionsRepository,
|
||||||
ApplicationConfig applicationConfig) {
|
ApplicationConfig applicationConfig) {
|
||||||
_logger.debug("WebInstRequestFilter init for /* ");
|
_logger.debug("WebInstRequestFilter init for /* ");
|
||||||
FilterRegistrationBean<Filter> registrationBean =
|
FilterRegistrationBean<Filter> registrationBean =
|
||||||
new FilterRegistrationBean<Filter>(new WebInstRequestFilter(institutionsRepository,applicationConfig));
|
new FilterRegistrationBean<>(new WebInstRequestFilter(institutionsRepository,applicationConfig));
|
||||||
registrationBean.addUrlPatterns("/*");
|
registrationBean.addUrlPatterns("/*");
|
||||||
registrationBean.setName("webInstRequestFilter");
|
registrationBean.setName("webInstRequestFilter");
|
||||||
registrationBean.setOrder(4);
|
registrationBean.setOrder(4);
|
||||||
|
|||||||
@ -201,10 +201,7 @@ public class ApplicationConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isProvisionSupport() {
|
public boolean isProvisionSupport() {
|
||||||
if(provision) {
|
return provision;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMgtUri() {
|
public String getMgtUri() {
|
||||||
|
|||||||
@ -92,17 +92,14 @@ public class InitializeContext extends HttpServlet {
|
|||||||
public void listDataBaseVariables() {
|
public void listDataBaseVariables() {
|
||||||
if (!applicationContext.containsBean("dataSource")) {return;}
|
if (!applicationContext.containsBean("dataSource")) {return;}
|
||||||
try {
|
try {
|
||||||
logger.debug(WebConstants.DELIMITER);
|
logger.info(WebConstants.DELIMITER);
|
||||||
logger.debug("List DatabaseMetaData Variables ");
|
logger.info("List DatabaseMetaData Variables ");
|
||||||
Connection connection =
|
Connection connection = ((javax.sql.DataSource) applicationContext.getBean("dataSource")).getConnection();
|
||||||
((javax.sql.DataSource) applicationContext.getBean("dataSource"))
|
|
||||||
.getConnection();
|
|
||||||
|
|
||||||
DatabaseMetaData databaseMetaData = connection.getMetaData();
|
DatabaseMetaData databaseMetaData = connection.getMetaData();
|
||||||
ApplicationConfig.databaseProduct = databaseMetaData.getDatabaseProductName();
|
ApplicationConfig.databaseProduct = databaseMetaData.getDatabaseProductName();
|
||||||
|
|
||||||
logger.debug("DatabaseProductName : {}", databaseMetaData.getDatabaseProductName());
|
logger.info("DatabaseProductName : {}", databaseMetaData.getDatabaseProductName());
|
||||||
logger.debug("DatabaseProductVersion: {}" ,databaseMetaData.getDatabaseProductVersion());
|
logger.info("DatabaseProductVersion: {}" ,databaseMetaData.getDatabaseProductVersion());
|
||||||
logger.trace("DatabaseMajorVersion : {}" , databaseMetaData.getDatabaseMajorVersion());
|
logger.trace("DatabaseMajorVersion : {}" , databaseMetaData.getDatabaseMajorVersion());
|
||||||
logger.trace("DatabaseMinorVersion : {}" ,databaseMetaData.getDatabaseMinorVersion());
|
logger.trace("DatabaseMinorVersion : {}" ,databaseMetaData.getDatabaseMinorVersion());
|
||||||
logger.trace("supportsTransactions : {}" , databaseMetaData.supportsTransactions());
|
logger.trace("supportsTransactions : {}" , databaseMetaData.supportsTransactions());
|
||||||
@ -113,13 +110,12 @@ public class InitializeContext extends HttpServlet {
|
|||||||
logger.trace("JDBCMinorVersion : {}" ,databaseMetaData.getJDBCMinorVersion());
|
logger.trace("JDBCMinorVersion : {}" ,databaseMetaData.getJDBCMinorVersion());
|
||||||
logger.trace("DriverName : {}" ,databaseMetaData.getDriverName());
|
logger.trace("DriverName : {}" ,databaseMetaData.getDriverName());
|
||||||
logger.trace("DriverVersion : {}" ,databaseMetaData.getDriverVersion());
|
logger.trace("DriverVersion : {}" ,databaseMetaData.getDriverVersion());
|
||||||
logger.debug("");
|
logger.info("");
|
||||||
logger.debug("DBMS URL : {}" ,databaseMetaData.getURL());
|
logger.info("DBMS URL : {}" ,databaseMetaData.getURL());
|
||||||
logger.debug("UserName : {}" ,databaseMetaData.getUserName());
|
logger.info("UserName : {}" ,databaseMetaData.getUserName());
|
||||||
logger.debug(WebConstants.DELIMITER);
|
logger.info(WebConstants.DELIMITER);
|
||||||
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
|
||||||
logger.error("DatabaseMetaData Variables Error .",e);
|
logger.error("DatabaseMetaData Variables Error .",e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -60,14 +60,13 @@ import jakarta.servlet.http.HttpSession;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public final class WebContext {
|
public final class WebContext {
|
||||||
|
static final Logger _logger = LoggerFactory.getLogger(WebContext.class);
|
||||||
final static Logger _logger = LoggerFactory.getLogger(WebContext.class);
|
|
||||||
|
|
||||||
public static StandardEnvironment properties;
|
public static StandardEnvironment properties;
|
||||||
|
|
||||||
public static ApplicationContext applicationContext;
|
public static ApplicationContext applicationContext;
|
||||||
|
|
||||||
public final static String ipAddressRegex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
|
public static final String ipAddressRegex = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
|
||||||
|
|
||||||
public static ArrayList<String> sessionAttributeNameList = new ArrayList<String>();
|
public static ArrayList<String> sessionAttributeNameList = new ArrayList<String>();
|
||||||
|
|
||||||
@ -146,7 +145,11 @@ public final class WebContext {
|
|||||||
}else {
|
}else {
|
||||||
return applicationContext.getBean(name,requiredType);
|
return applicationContext.getBean(name,requiredType);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
|
public static String getProperty(String key) {
|
||||||
|
return properties.getProperty(key);
|
||||||
|
}
|
||||||
|
|
||||||
// below method is common HttpServlet method
|
// below method is common HttpServlet method
|
||||||
/**
|
/**
|
||||||
@ -155,13 +158,11 @@ public final class WebContext {
|
|||||||
* @return HttpServletRequest
|
* @return HttpServletRequest
|
||||||
*/
|
*/
|
||||||
public static HttpServletRequest getRequest() {
|
public static HttpServletRequest getRequest() {
|
||||||
return ((ServletRequestAttributes)
|
return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
|
||||||
RequestContextHolder.getRequestAttributes()).getRequest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HttpServletResponse getResponse() {
|
public static HttpServletResponse getResponse() {
|
||||||
return ((ServletRequestAttributes)
|
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
|
||||||
RequestContextHolder.getRequestAttributes()).getResponse();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -205,14 +206,14 @@ public final class WebContext {
|
|||||||
|
|
||||||
Enumeration<String> headerNames = request.getHeaderNames();
|
Enumeration<String> headerNames = request.getHeaderNames();
|
||||||
while (headerNames.hasMoreElements()) {
|
while (headerNames.hasMoreElements()) {
|
||||||
String key = (String) headerNames.nextElement();
|
String key = headerNames.nextElement();
|
||||||
String value = request.getHeader(key);
|
String value = request.getHeader(key);
|
||||||
_logger.info("Header key {} , value {}" , key, value);
|
_logger.info("Header key {} , value {}" , key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
Enumeration<String> parameterNames = request.getParameterNames();
|
Enumeration<String> parameterNames = request.getParameterNames();
|
||||||
while (parameterNames.hasMoreElements()) {
|
while (parameterNames.hasMoreElements()) {
|
||||||
String key = (String) parameterNames.nextElement();
|
String key = parameterNames.nextElement();
|
||||||
String value = request.getParameter(key);
|
String value = request.getParameter(key);
|
||||||
_logger.info("Parameter {} , value {}",key , value);
|
_logger.info("Parameter {} , value {}",key , value);
|
||||||
}
|
}
|
||||||
@ -233,7 +234,7 @@ public final class WebContext {
|
|||||||
* @return HttpSession
|
* @return HttpSession
|
||||||
*/
|
*/
|
||||||
public static HttpSession getSession(boolean create) {
|
public static HttpSession getSession(boolean create) {
|
||||||
System.out.println("new Session created");
|
_logger.info("new Session created");
|
||||||
return getRequest().getSession(create);
|
return getRequest().getSession(create);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -314,7 +315,7 @@ public final class WebContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Map<String, String> getRequestParameterMap(HttpServletRequest request) {
|
public static Map<String, String> getRequestParameterMap(HttpServletRequest request) {
|
||||||
Map<String, String> map = new HashMap<String, String>();
|
Map<String, String> map = new HashMap<>();
|
||||||
Map<String, String[]> parameters = request.getParameterMap();
|
Map<String, String[]> parameters = request.getParameterMap();
|
||||||
for (String key : parameters.keySet()) {
|
for (String key : parameters.keySet()) {
|
||||||
String[] values = parameters.get(key);
|
String[] values = parameters.get(key);
|
||||||
@ -333,8 +334,7 @@ public final class WebContext {
|
|||||||
public static Cookie getCookie(HttpServletRequest request, String name) {
|
public static Cookie getCookie(HttpServletRequest request, String name) {
|
||||||
Map<String, Cookie> cookieMap = getCookieAll(request);
|
Map<String, Cookie> cookieMap = getCookieAll(request);
|
||||||
if (cookieMap.containsKey(name)) {
|
if (cookieMap.containsKey(name)) {
|
||||||
Cookie cookie = (Cookie) cookieMap.get(name);
|
return cookieMap.get(name);
|
||||||
return cookie;
|
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -347,7 +347,7 @@ public final class WebContext {
|
|||||||
* @return Map
|
* @return Map
|
||||||
*/
|
*/
|
||||||
private static Map<String, Cookie> getCookieAll(HttpServletRequest request) {
|
private static Map<String, Cookie> getCookieAll(HttpServletRequest request) {
|
||||||
Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
|
Map<String, Cookie> cookieMap = new HashMap<>();
|
||||||
Cookie[] cookies = request.getCookies();
|
Cookie[] cookies = request.getCookies();
|
||||||
if (null != cookies) {
|
if (null != cookies) {
|
||||||
for (Cookie cookie : cookies) {
|
for (Cookie cookie : cookies) {
|
||||||
@ -536,7 +536,7 @@ public final class WebContext {
|
|||||||
version.append("-----------------------------------------------------------");
|
version.append("-----------------------------------------------------------");
|
||||||
version.append("+ MaxKey Community Edition ");
|
version.append("+ MaxKey Community Edition ");
|
||||||
version.append("+ Single Sign On ( SSO ) ");
|
version.append("+ Single Sign On ( SSO ) ");
|
||||||
version.append("+ Version {}".formatted(
|
version.append("+ Version %s".formatted(
|
||||||
WebContext.properties.getProperty("application.formatted-version")));
|
WebContext.properties.getProperty("application.formatted-version")));
|
||||||
version.append("+");
|
version.append("+");
|
||||||
version.append("+ {}Copyright 2018 - {} https://www.maxkey.top/",
|
version.append("+ {}Copyright 2018 - {} https://www.maxkey.top/",
|
||||||
|
|||||||
@ -79,7 +79,7 @@ public class GroupsService extends JpaService<Groups> implements Serializable {
|
|||||||
return this.getMapper().queryByUserId(userId);
|
return this.getMapper().queryByUserId(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void refreshDynamicRoles(Groups dynamicGroup){
|
public void refreshDynamicGroups(Groups dynamicGroup){
|
||||||
if(dynamicGroup.getCategory().equals(Roles.Category.DYNAMIC)) {
|
if(dynamicGroup.getCategory().equals(Roles.Category.DYNAMIC)) {
|
||||||
boolean isDynamicTimeSupport = false;
|
boolean isDynamicTimeSupport = false;
|
||||||
boolean isBetweenEffectiveTime = false;
|
boolean isBetweenEffectiveTime = false;
|
||||||
@ -90,9 +90,10 @@ public class GroupsService extends JpaService<Groups> implements Serializable {
|
|||||||
LocalTime resumeTime = LocalTime.parse(dynamicGroup.getResumeTime());
|
LocalTime resumeTime = LocalTime.parse(dynamicGroup.getResumeTime());
|
||||||
LocalTime suspendTime = LocalTime.parse(dynamicGroup.getSuspendTime());
|
LocalTime suspendTime = LocalTime.parse(dynamicGroup.getSuspendTime());
|
||||||
|
|
||||||
_logger.info("currentTime: " + currentTime
|
_logger.info("currentTime: {} , resumeTime : {} , suspendTime: {}"
|
||||||
+ " , resumeTime : " + resumeTime
|
, currentTime
|
||||||
+ " , suspendTime: " + suspendTime);
|
, resumeTime
|
||||||
|
, suspendTime);
|
||||||
isDynamicTimeSupport = true;
|
isDynamicTimeSupport = true;
|
||||||
|
|
||||||
if(resumeTime.isBefore(currentTime) && currentTime.isBefore(suspendTime)) {
|
if(resumeTime.isBefore(currentTime) && currentTime.isBefore(suspendTime)) {
|
||||||
@ -152,7 +153,7 @@ public class GroupsService extends JpaService<Groups> implements Serializable {
|
|||||||
List<Groups> groupsList = queryDynamicGroups(group);
|
List<Groups> groupsList = queryDynamicGroups(group);
|
||||||
for(Groups g : groupsList) {
|
for(Groups g : groupsList) {
|
||||||
_logger.debug("role {}" , g);
|
_logger.debug("role {}" , g);
|
||||||
refreshDynamicRoles(g);
|
refreshDynamicGroups(g);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,5 +26,5 @@ export const CONSTS = {
|
|||||||
REDIRECT_URI: 'redirect_uri',
|
REDIRECT_URI: 'redirect_uri',
|
||||||
REMEMBER: 'remember_me',
|
REMEMBER: 'remember_me',
|
||||||
TOKEN: '_token',
|
TOKEN: '_token',
|
||||||
VERSION: 'v4.0.1 GA'
|
VERSION: 'v4.0.2 GA'
|
||||||
};
|
};
|
||||||
|
|||||||
@ -106,6 +106,7 @@
|
|||||||
<th nzAlign="center">{{ 'mxk.history.login.message' | i18n }}</th>
|
<th nzAlign="center">{{ 'mxk.history.login.message' | i18n }}</th>
|
||||||
<th nzAlign="center">{{ 'mxk.history.login.loginType' | i18n }}</th>
|
<th nzAlign="center">{{ 'mxk.history.login.loginType' | i18n }}</th>
|
||||||
<th nzAlign="center">{{ 'mxk.history.login.sourceIp' | i18n }}</th>
|
<th nzAlign="center">{{ 'mxk.history.login.sourceIp' | i18n }}</th>
|
||||||
|
<th nzAlign="center">{{ 'mxk.history.login.location' | i18n }}</th>
|
||||||
<th nzAlign="center">{{ 'mxk.history.login.browser' | i18n }}</th>
|
<th nzAlign="center">{{ 'mxk.history.login.browser' | i18n }}</th>
|
||||||
<th nzAlign="center">{{ 'mxk.history.login.platform' | i18n }}</th>
|
<th nzAlign="center">{{ 'mxk.history.login.platform' | i18n }}</th>
|
||||||
<th nzAlign="center">{{ 'mxk.history.login.loginTime' | i18n }}</th>
|
<th nzAlign="center">{{ 'mxk.history.login.loginTime' | i18n }}</th>
|
||||||
@ -122,6 +123,7 @@
|
|||||||
<td nzAlign="left">{{ data.provider }}</td>
|
<td nzAlign="left">{{ data.provider }}</td>
|
||||||
<td nzAlign="left">{{ data.loginType }}</td>
|
<td nzAlign="left">{{ data.loginType }}</td>
|
||||||
<td nzAlign="left">{{ data.sourceIp }}</td>
|
<td nzAlign="left">{{ data.sourceIp }}</td>
|
||||||
|
<td nzAlign="left">{{ data.location }}</td>
|
||||||
<td nzAlign="left">{{ data.browser }}</td>
|
<td nzAlign="left">{{ data.browser }}</td>
|
||||||
<td nzAlign="left">{{ data.platform }}</td>
|
<td nzAlign="left">{{ data.platform }}</td>
|
||||||
<td nzAlign="left">{{ data.loginTime }}</td>
|
<td nzAlign="left">{{ data.loginTime }}</td>
|
||||||
|
|||||||
@ -19,5 +19,5 @@ export const CONSTS = {
|
|||||||
INST: 'inst',
|
INST: 'inst',
|
||||||
REDIRECT_URI: 'redirect_uri',
|
REDIRECT_URI: 'redirect_uri',
|
||||||
REMEMBER: 'remember',
|
REMEMBER: 'remember',
|
||||||
VERSION: 'v4.0.1 GA'
|
VERSION: 'v4.0.2 GA'
|
||||||
};
|
};
|
||||||
|
|||||||
@ -649,6 +649,7 @@
|
|||||||
"login.message": "message",
|
"login.message": "message",
|
||||||
"login.loginType": "loginType",
|
"login.loginType": "loginType",
|
||||||
"login.sourceIp": "sourceIp",
|
"login.sourceIp": "sourceIp",
|
||||||
|
"login.location": "location",
|
||||||
"login.browser": "browser",
|
"login.browser": "browser",
|
||||||
"login.loginTime": "loginTime",
|
"login.loginTime": "loginTime",
|
||||||
"login.logoutTime": "logoutTime",
|
"login.logoutTime": "logoutTime",
|
||||||
|
|||||||
@ -647,6 +647,7 @@
|
|||||||
"login.message": "状态",
|
"login.message": "状态",
|
||||||
"login.loginType": "登录方式",
|
"login.loginType": "登录方式",
|
||||||
"login.sourceIp": "访问地址",
|
"login.sourceIp": "访问地址",
|
||||||
|
"login.location": "归属地",
|
||||||
"login.browser": "浏览器",
|
"login.browser": "浏览器",
|
||||||
"login.loginTime": "登录时间",
|
"login.loginTime": "登录时间",
|
||||||
"login.logoutTime": "退出时间",
|
"login.logoutTime": "退出时间",
|
||||||
|
|||||||
@ -648,6 +648,7 @@
|
|||||||
"login.message": "狀態",
|
"login.message": "狀態",
|
||||||
"login.loginType": "登錄方式",
|
"login.loginType": "登錄方式",
|
||||||
"login.sourceIp": "訪問地址",
|
"login.sourceIp": "訪問地址",
|
||||||
|
"login.location": "歸屬地",
|
||||||
"login.browser": "瀏覽器",
|
"login.browser": "瀏覽器",
|
||||||
"login.loginTime": "登錄時間",
|
"login.loginTime": "登錄時間",
|
||||||
"login.logoutTime": "退出時間",
|
"login.logoutTime": "退出時間",
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#端口号
|
#端口号
|
||||||
application:
|
application:
|
||||||
name: maxkey-gateway-server
|
name: maxkey-gateway-server
|
||||||
formatted-version: v4.0.1 GA
|
formatted-version: v4.0.2 GA
|
||||||
server:
|
server:
|
||||||
port: 9000
|
port: 9000
|
||||||
spring:
|
spring:
|
||||||
|
|||||||
@ -58,7 +58,7 @@ public class MaxKeyApplication extends SpringBootServletInitializer {
|
|||||||
logger.error("ServletException", e);
|
logger.error("ServletException", e);
|
||||||
}
|
}
|
||||||
logger.info("MaxKey at {}" , new DateTime());
|
logger.info("MaxKey at {}" , new DateTime());
|
||||||
logger.info("MaxKey Server Port {}" , WebContext.properties.getProperty("server.port"));
|
logger.info("MaxKey Server Port {}" , WebContext.getProperty("server.port"));
|
||||||
logger.info("MaxKey started.");
|
logger.info("MaxKey started.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
#MaxKey Title and Version #
|
#MaxKey Title and Version #
|
||||||
############################################################################
|
############################################################################
|
||||||
application.title =MaxKey
|
application.title =MaxKey
|
||||||
application.formatted-version =v4.0.1 GA
|
application.formatted-version =v4.0.2 GA
|
||||||
#for dynamic service discovery
|
#for dynamic service discovery
|
||||||
spring.application.name =maxkey
|
spring.application.name =maxkey
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|||||||
@ -66,8 +66,7 @@ public class MaxKeyMgtApplication extends SpringBootServletInitializer {
|
|||||||
logger.info("Start MaxKeyMgt Application ...");
|
logger.info("Start MaxKeyMgt Application ...");
|
||||||
ProductEnvironment.listEnvVars();
|
ProductEnvironment.listEnvVars();
|
||||||
|
|
||||||
ConfigurableApplicationContext applicationContext =
|
ConfigurableApplicationContext applicationContext = SpringApplication.run(MaxKeyMgtApplication.class, args);
|
||||||
SpringApplication.run(MaxKeyMgtApplication.class, args);
|
|
||||||
InitializeContext initWebContext = new InitializeContext(applicationContext);
|
InitializeContext initWebContext = new InitializeContext(applicationContext);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -76,7 +75,7 @@ public class MaxKeyMgtApplication extends SpringBootServletInitializer {
|
|||||||
logger.error("Exception ",e);
|
logger.error("Exception ",e);
|
||||||
}
|
}
|
||||||
logger.info("MaxKeyMgt at {}" , new DateTime());
|
logger.info("MaxKeyMgt at {}" , new DateTime());
|
||||||
logger.info("MaxKeyMgt Server Port {}" , WebContext.properties.getProperty("server.port"));
|
logger.info("MaxKeyMgt Server Port {}" , WebContext.getProperty("server.port"));
|
||||||
logger.info("MaxKeyMgt started.");
|
logger.info("MaxKeyMgt started.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,7 +79,7 @@ public class MaxKeyMgtListenerConfig implements InitializingBean {
|
|||||||
ConnectorsService connectorsService,
|
ConnectorsService connectorsService,
|
||||||
JdbcTemplate jdbcTemplate,
|
JdbcTemplate jdbcTemplate,
|
||||||
ApplicationConfig applicationConfig
|
ApplicationConfig applicationConfig
|
||||||
) throws SchedulerException {
|
) {
|
||||||
if(applicationConfig.isProvisionSupport()) {
|
if(applicationConfig.isProvisionSupport()) {
|
||||||
ProvisioningRunner runner = new ProvisioningRunner(connectorsService,jdbcTemplate);
|
ProvisioningRunner runner = new ProvisioningRunner(connectorsService,jdbcTemplate);
|
||||||
ProvisioningRunnerThread runnerThread = new ProvisioningRunnerThread(runner);
|
ProvisioningRunnerThread runnerThread = new ProvisioningRunnerThread(runner);
|
||||||
|
|||||||
@ -94,7 +94,7 @@ public class GroupsController {
|
|||||||
group.setGroupCode(group.getId());
|
group.setGroupCode(group.getId());
|
||||||
}
|
}
|
||||||
if (service.insert(group)) {
|
if (service.insert(group)) {
|
||||||
service.refreshDynamicRoles(group);
|
service.refreshDynamicGroups(group);
|
||||||
systemLog.insert(
|
systemLog.insert(
|
||||||
ConstsEntryType.ROLE,
|
ConstsEntryType.ROLE,
|
||||||
group,
|
group,
|
||||||
@ -116,7 +116,7 @@ public class GroupsController {
|
|||||||
}
|
}
|
||||||
group.setInstId(currentUser.getInstId());
|
group.setInstId(currentUser.getInstId());
|
||||||
if (service.update(group)) {
|
if (service.update(group)) {
|
||||||
service.refreshDynamicRoles(group);
|
service.refreshDynamicGroups(group);
|
||||||
systemLog.insert(
|
systemLog.insert(
|
||||||
ConstsEntryType.ROLE,
|
ConstsEntryType.ROLE,
|
||||||
group,
|
group,
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
#MaxKey Title and Version #
|
#MaxKey Title and Version #
|
||||||
############################################################################
|
############################################################################
|
||||||
application.title =MaxKey-Mgt
|
application.title =MaxKey-Mgt
|
||||||
application.formatted-version =v4.0.1 GA
|
application.formatted-version =v4.0.2 GA
|
||||||
#for dynamic service discovery
|
#for dynamic service discovery
|
||||||
spring.application.name =maxkey-mgt
|
spring.application.name =maxkey-mgt
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|||||||
@ -62,8 +62,7 @@ public class MaxKeyOpenApiApplication extends SpringBootServletInitializer {
|
|||||||
logger.info("Start MaxKey OpenApi Application ...");
|
logger.info("Start MaxKey OpenApi Application ...");
|
||||||
ProductEnvironment.listEnvVars();
|
ProductEnvironment.listEnvVars();
|
||||||
|
|
||||||
ConfigurableApplicationContext applicationContext =
|
ConfigurableApplicationContext applicationContext = SpringApplication.run(MaxKeyOpenApiApplication.class, args);
|
||||||
SpringApplication.run(MaxKeyOpenApiApplication.class, args);
|
|
||||||
InitializeContext initWebContext = new InitializeContext(applicationContext);
|
InitializeContext initWebContext = new InitializeContext(applicationContext);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -72,7 +71,7 @@ public class MaxKeyOpenApiApplication extends SpringBootServletInitializer {
|
|||||||
logger.error("Exception ",e);
|
logger.error("Exception ",e);
|
||||||
}
|
}
|
||||||
logger.info("MaxKey OpenApi at {}" , new DateTime());
|
logger.info("MaxKey OpenApi at {}" , new DateTime());
|
||||||
logger.info("MaxKey OpenApi Server Port {}" , WebContext.properties.getProperty("server.port"));
|
logger.info("MaxKey OpenApi Server Port {}" , WebContext.getProperty("server.port"));
|
||||||
logger.info("MaxKey OpenApi started.");
|
logger.info("MaxKey OpenApi started.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
#MaxKey Title and Version #
|
#MaxKey Title and Version #
|
||||||
############################################################################
|
############################################################################
|
||||||
application.title =MaxKey-OpenApi
|
application.title =MaxKey-OpenApi
|
||||||
application.formatted-version =v4.0.1 GA
|
application.formatted-version =v4.0.2 GA
|
||||||
#for dynamic service discovery
|
#for dynamic service discovery
|
||||||
spring.application.name =maxkey-openapi
|
spring.application.name =maxkey-openapi
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user