This commit is contained in:
MaxKey 2023-10-09 08:59:49 +08:00
parent b8838cbae8
commit ce87d209c1
23 changed files with 74 additions and 100 deletions

View File

@ -28,7 +28,7 @@ ext {
def libjarsmapper=[
'maxkey-authentication-captcha' :'lib',
'maxkey-authentication-core' :'lib',
'maxkey-authentication-ip2region' :'lib',
'maxkey-authentication-ip2location' :'lib',
'maxkey-authentication-otp' :'lib',
'maxkey-authentication-provider' :'lib',
'maxkey-authentication-sms' :'lib',

View File

@ -15,7 +15,7 @@
# */
#maxkey properties
group =org.dromara.maxkey
version =4.0.1
version =4.0.2
vendor =https://www.maxkey.top
author =MaxKeyTop

View File

@ -89,7 +89,7 @@ public class ApplicationAutoConfiguration implements InitializingBean {
@Bean
public PasswordEncoder passwordEncoder(
@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("plain", NoOpPasswordEncoder.getInstance());
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.machineId:0}") int machineId) {
IdGenerator idGenerator = new IdGenerator(strategy);
SnowFlakeId SnowFlakeId = new SnowFlakeId(datacenterId,machineId);
idGenerator.setSnowFlakeId(SnowFlakeId);
SnowFlakeId snowFlakeId = new SnowFlakeId(datacenterId,machineId);
idGenerator.setSnowFlakeId(snowFlakeId);
WebContext.idGenerator = idGenerator;
return idGenerator;
}
@ -184,14 +184,13 @@ public class ApplicationAutoConfiguration implements InitializingBean {
@Bean
public MomentaryService momentaryService(
RedisConnectionFactory redisConnFactory,
@Value("${maxkey.server.persistence}") int persistence) throws JOSEException {
@Value("${maxkey.server.persistence}") int persistence) {
MomentaryService momentaryService;
if (persistence == ConstsPersistence.REDIS) {
momentaryService = new RedisMomentaryService(redisConnFactory);
}else {
momentaryService = new InMemoryMomentaryService();
}
return momentaryService;
}

View File

@ -75,11 +75,10 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
public ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource(
@Value("${spring.messages.basename:classpath:messages/message}")
String messagesBasename) {
_logger.debug("Basename " + messagesBasename);
_logger.debug("Basename {}" , messagesBasename);
String passwordPolicyMessagesBasename="classpath:messages/passwordpolicy_message";
ReloadableResourceBundleMessageSource messageSource =
new ReloadableResourceBundleMessageSource();
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames(messagesBasename,passwordPolicyMessagesBasename);
messageSource.setUseCodeAsDefaultMessage(false);
return messageSource;
@ -92,27 +91,11 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
//@Primary
@Bean (name = "localeChangeInterceptor")
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor localeChangeInterceptor =
new LocaleChangeInterceptor();
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("language");
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 .
* @return handlerMapping
@ -120,8 +103,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
@Bean (name = "handlerMapping")
public RequestMappingHandlerMapping requestMappingHandlerMapping(
LocaleChangeInterceptor localeChangeInterceptor) {
RequestMappingHandlerMapping requestMappingHandlerMapping =
new RequestMappingHandlerMapping();
RequestMappingHandlerMapping requestMappingHandlerMapping = new RequestMappingHandlerMapping();
requestMappingHandlerMapping.setInterceptors(localeChangeInterceptor);
return requestMappingHandlerMapping;
}
@ -144,15 +126,14 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
@Bean (name = "marshallingHttpMessageConverter")
public MarshallingHttpMessageConverter marshallingHttpMessageConverter(
Jaxb2Marshaller jaxb2Marshaller) {
MarshallingHttpMessageConverter marshallingHttpMessageConverter =
new MarshallingHttpMessageConverter();
MarshallingHttpMessageConverter marshallingHttpMessageConverter = new MarshallingHttpMessageConverter();
marshallingHttpMessageConverter.setMarshaller(jaxb2Marshaller);
marshallingHttpMessageConverter.setUnmarshaller(jaxb2Marshaller);
ArrayList<MediaType> mediaTypesList = new ArrayList<MediaType>();
ArrayList<MediaType> mediaTypesList = new ArrayList<>();
mediaTypesList.add(MediaType.APPLICATION_XML);
mediaTypesList.add(MediaType.TEXT_XML);
mediaTypesList.add(MediaType.TEXT_PLAIN);
_logger.debug("marshallingHttpMessageConverter MediaTypes " + mediaTypesList);
_logger.debug("marshallingHttpMessageConverter MediaTypes {}" , mediaTypesList);
marshallingHttpMessageConverter.setSupportedMediaTypes(mediaTypesList);
return marshallingHttpMessageConverter;
}
@ -163,14 +144,13 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
*/
@Bean (name = "mappingJacksonHttpMessageConverter")
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter =
new MappingJackson2HttpMessageConverter();
ArrayList<MediaType> mediaTypesList = new ArrayList<MediaType>();
MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter = new MappingJackson2HttpMessageConverter();
ArrayList<MediaType> mediaTypesList = new ArrayList<>();
mediaTypesList.add(MediaType.APPLICATION_JSON);
mediaTypesList.add(MediaType.valueOf(ApiVersion.V2.getProducedMimeType().toString()));
mediaTypesList.add(MediaType.valueOf(ApiVersion.V3.getProducedMimeType().toString()));
//mediaTypesList.add(MediaType.TEXT_PLAIN);
_logger.debug("mappingJacksonHttpMessageConverter MediaTypes " + mediaTypesList);
_logger.debug("mappingJacksonHttpMessageConverter MediaTypes {}" , mediaTypesList);
mappingJacksonHttpMessageConverter.setSupportedMediaTypes(mediaTypesList);
return mappingJacksonHttpMessageConverter;
}
@ -185,7 +165,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
@Value("${maxkey.server.domain:maxkey.top}")
String domainName
) {
_logger.debug("DomainName " + domainName);
_logger.debug("DomainName {}" , domainName);
CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver();
cookieLocaleResolver.setCookieName("mxk_locale");
cookieLocaleResolver.setCookieDomain(domainName);
@ -204,8 +184,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
MarshallingHttpMessageConverter marshallingHttpMessageConverter,
StringHttpMessageConverter stringHttpMessageConverter,
RequestMappingHandlerAdapter requestMappingHandlerAdapter) {
List<HttpMessageConverter<?>> httpMessageConverterList =
new ArrayList<HttpMessageConverter<?>>();
List<HttpMessageConverter<?>> httpMessageConverterList = new ArrayList<>();
httpMessageConverterList.add(mappingJacksonHttpMessageConverter);
httpMessageConverterList.add(marshallingHttpMessageConverter);
httpMessageConverterList.add(stringHttpMessageConverter);
@ -224,8 +203,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter,
MarshallingHttpMessageConverter marshallingHttpMessageConverter) {
RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> httpMessageConverterList =
new ArrayList<HttpMessageConverter<?>>();
List<HttpMessageConverter<?>> httpMessageConverterList = new ArrayList<>();
httpMessageConverterList.add(mappingJacksonHttpMessageConverter);
httpMessageConverterList.add(marshallingHttpMessageConverter);
restTemplate.setMessageConverters(httpMessageConverterList);
@ -279,7 +257,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
@Bean
public FilterRegistrationBean<Filter> delegatingFilterProxy() {
_logger.debug("delegatingFilterProxy init for /* ");
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<Filter>();
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new DelegatingFilterProxy("securityContextHolderAwareRequestFilter"));
registrationBean.addUrlPatterns("/*");
//registrationBean.
@ -292,7 +270,7 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
@Bean
public FilterRegistrationBean<Filter> webXssRequestFilter() {
_logger.debug("webXssRequestFilter init for /* ");
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<Filter>(new WebXssRequestFilter());
FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>(new WebXssRequestFilter());
registrationBean.addUrlPatterns("/*");
registrationBean.setName("webXssRequestFilter");
registrationBean.setOrder(3);
@ -300,12 +278,12 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
}
@Bean
public FilterRegistrationBean<Filter> WebInstRequestFilter(
public FilterRegistrationBean<Filter> webInstRequestFilter(
InstitutionsRepository institutionsRepository,
ApplicationConfig applicationConfig) {
_logger.debug("WebInstRequestFilter init for /* ");
FilterRegistrationBean<Filter> registrationBean =
new FilterRegistrationBean<Filter>(new WebInstRequestFilter(institutionsRepository,applicationConfig));
new FilterRegistrationBean<>(new WebInstRequestFilter(institutionsRepository,applicationConfig));
registrationBean.addUrlPatterns("/*");
registrationBean.setName("webInstRequestFilter");
registrationBean.setOrder(4);

View File

@ -201,10 +201,7 @@ public class ApplicationConfig {
}
public boolean isProvisionSupport() {
if(provision) {
return true;
}
return false;
return provision;
}
public String getMgtUri() {

View File

@ -92,17 +92,14 @@ public class InitializeContext extends HttpServlet {
public void listDataBaseVariables() {
if (!applicationContext.containsBean("dataSource")) {return;}
try {
logger.debug(WebConstants.DELIMITER);
logger.debug("List DatabaseMetaData Variables ");
Connection connection =
((javax.sql.DataSource) applicationContext.getBean("dataSource"))
.getConnection();
logger.info(WebConstants.DELIMITER);
logger.info("List DatabaseMetaData Variables ");
Connection connection = ((javax.sql.DataSource) applicationContext.getBean("dataSource")).getConnection();
DatabaseMetaData databaseMetaData = connection.getMetaData();
ApplicationConfig.databaseProduct = databaseMetaData.getDatabaseProductName();
logger.debug("DatabaseProductName : {}", databaseMetaData.getDatabaseProductName());
logger.debug("DatabaseProductVersion: {}" ,databaseMetaData.getDatabaseProductVersion());
logger.info("DatabaseProductName : {}", databaseMetaData.getDatabaseProductName());
logger.info("DatabaseProductVersion: {}" ,databaseMetaData.getDatabaseProductVersion());
logger.trace("DatabaseMajorVersion : {}" , databaseMetaData.getDatabaseMajorVersion());
logger.trace("DatabaseMinorVersion : {}" ,databaseMetaData.getDatabaseMinorVersion());
logger.trace("supportsTransactions : {}" , databaseMetaData.supportsTransactions());
@ -113,13 +110,12 @@ public class InitializeContext extends HttpServlet {
logger.trace("JDBCMinorVersion : {}" ,databaseMetaData.getJDBCMinorVersion());
logger.trace("DriverName : {}" ,databaseMetaData.getDriverName());
logger.trace("DriverVersion : {}" ,databaseMetaData.getDriverVersion());
logger.debug("");
logger.debug("DBMS URL : {}" ,databaseMetaData.getURL());
logger.debug("UserName : {}" ,databaseMetaData.getUserName());
logger.debug(WebConstants.DELIMITER);
logger.info("");
logger.info("DBMS URL : {}" ,databaseMetaData.getURL());
logger.info("UserName : {}" ,databaseMetaData.getUserName());
logger.info(WebConstants.DELIMITER);
} catch (SQLException e) {
e.printStackTrace();
logger.error("DatabaseMetaData Variables Error .",e);
}
}

View File

@ -60,14 +60,13 @@ import jakarta.servlet.http.HttpSession;
*
*/
public final class WebContext {
final static Logger _logger = LoggerFactory.getLogger(WebContext.class);
static final Logger _logger = LoggerFactory.getLogger(WebContext.class);
public static StandardEnvironment properties;
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>();
@ -146,7 +145,11 @@ public final class WebContext {
}else {
return applicationContext.getBean(name,requiredType);
}
};
}
public static String getProperty(String key) {
return properties.getProperty(key);
}
// below method is common HttpServlet method
/**
@ -155,13 +158,11 @@ public final class WebContext {
* @return HttpServletRequest
*/
public static HttpServletRequest getRequest() {
return ((ServletRequestAttributes)
RequestContextHolder.getRequestAttributes()).getRequest();
return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
}
public static HttpServletResponse getResponse() {
return ((ServletRequestAttributes)
RequestContextHolder.getRequestAttributes()).getResponse();
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
}
/**
@ -205,14 +206,14 @@ public final class WebContext {
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String key = (String) headerNames.nextElement();
String key = headerNames.nextElement();
String value = request.getHeader(key);
_logger.info("Header key {} , value {}" , key, value);
}
Enumeration<String> parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()) {
String key = (String) parameterNames.nextElement();
String key = parameterNames.nextElement();
String value = request.getParameter(key);
_logger.info("Parameter {} , value {}",key , value);
}
@ -233,7 +234,7 @@ public final class WebContext {
* @return HttpSession
*/
public static HttpSession getSession(boolean create) {
System.out.println("new Session created");
_logger.info("new Session created");
return getRequest().getSession(create);
}
@ -314,7 +315,7 @@ public final class WebContext {
}
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();
for (String key : parameters.keySet()) {
String[] values = parameters.get(key);
@ -333,8 +334,7 @@ public final class WebContext {
public static Cookie getCookie(HttpServletRequest request, String name) {
Map<String, Cookie> cookieMap = getCookieAll(request);
if (cookieMap.containsKey(name)) {
Cookie cookie = (Cookie) cookieMap.get(name);
return cookie;
return cookieMap.get(name);
} else {
return null;
}
@ -347,7 +347,7 @@ public final class WebContext {
* @return Map
*/
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();
if (null != cookies) {
for (Cookie cookie : cookies) {
@ -536,7 +536,7 @@ public final class WebContext {
version.append("-----------------------------------------------------------");
version.append("+ MaxKey Community Edition ");
version.append("+ Single Sign On ( SSO ) ");
version.append("+ Version {}".formatted(
version.append("+ Version %s".formatted(
WebContext.properties.getProperty("application.formatted-version")));
version.append("+");
version.append("+ {}Copyright 2018 - {} https://www.maxkey.top/",

View File

@ -79,7 +79,7 @@ public class GroupsService extends JpaService<Groups> implements Serializable {
return this.getMapper().queryByUserId(userId);
}
public void refreshDynamicRoles(Groups dynamicGroup){
public void refreshDynamicGroups(Groups dynamicGroup){
if(dynamicGroup.getCategory().equals(Roles.Category.DYNAMIC)) {
boolean isDynamicTimeSupport = false;
boolean isBetweenEffectiveTime = false;
@ -90,9 +90,10 @@ public class GroupsService extends JpaService<Groups> implements Serializable {
LocalTime resumeTime = LocalTime.parse(dynamicGroup.getResumeTime());
LocalTime suspendTime = LocalTime.parse(dynamicGroup.getSuspendTime());
_logger.info("currentTime: " + currentTime
+ " , resumeTime : " + resumeTime
+ " , suspendTime: " + suspendTime);
_logger.info("currentTime: {} , resumeTime : {} , suspendTime: {}"
, currentTime
, resumeTime
, suspendTime);
isDynamicTimeSupport = true;
if(resumeTime.isBefore(currentTime) && currentTime.isBefore(suspendTime)) {
@ -152,7 +153,7 @@ public class GroupsService extends JpaService<Groups> implements Serializable {
List<Groups> groupsList = queryDynamicGroups(group);
for(Groups g : groupsList) {
_logger.debug("role {}" , g);
refreshDynamicRoles(g);
refreshDynamicGroups(g);
}
}
}

View File

@ -26,5 +26,5 @@ export const CONSTS = {
REDIRECT_URI: 'redirect_uri',
REMEMBER: 'remember_me',
TOKEN: '_token',
VERSION: 'v4.0.1 GA'
VERSION: 'v4.0.2 GA'
};

View File

@ -106,6 +106,7 @@
<th nzAlign="center">{{ 'mxk.history.login.message' | 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.location' | 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.loginTime' | i18n }}</th>
@ -122,6 +123,7 @@
<td nzAlign="left">{{ data.provider }}</td>
<td nzAlign="left">{{ data.loginType }}</td>
<td nzAlign="left">{{ data.sourceIp }}</td>
<td nzAlign="left">{{ data.location }}</td>
<td nzAlign="left">{{ data.browser }}</td>
<td nzAlign="left">{{ data.platform }}</td>
<td nzAlign="left">{{ data.loginTime }}</td>

View File

@ -19,5 +19,5 @@ export const CONSTS = {
INST: 'inst',
REDIRECT_URI: 'redirect_uri',
REMEMBER: 'remember',
VERSION: 'v4.0.1 GA'
VERSION: 'v4.0.2 GA'
};

View File

@ -649,6 +649,7 @@
"login.message": "message",
"login.loginType": "loginType",
"login.sourceIp": "sourceIp",
"login.location": "location",
"login.browser": "browser",
"login.loginTime": "loginTime",
"login.logoutTime": "logoutTime",

View File

@ -647,6 +647,7 @@
"login.message": "状态",
"login.loginType": "登录方式",
"login.sourceIp": "访问地址",
"login.location": "归属地",
"login.browser": "浏览器",
"login.loginTime": "登录时间",
"login.logoutTime": "退出时间",

View File

@ -648,6 +648,7 @@
"login.message": "狀態",
"login.loginType": "登錄方式",
"login.sourceIp": "訪問地址",
"login.location": "歸屬地",
"login.browser": "瀏覽器",
"login.loginTime": "登錄時間",
"login.logoutTime": "退出時間",

View File

@ -1,7 +1,7 @@
#端口号
application:
name: maxkey-gateway-server
formatted-version: v4.0.1 GA
formatted-version: v4.0.2 GA
server:
port: 9000
spring:

View File

@ -58,7 +58,7 @@ public class MaxKeyApplication extends SpringBootServletInitializer {
logger.error("ServletException", e);
}
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.");
}

View File

@ -16,7 +16,7 @@
#MaxKey Title and Version #
############################################################################
application.title =MaxKey
application.formatted-version =v4.0.1 GA
application.formatted-version =v4.0.2 GA
#for dynamic service discovery
spring.application.name =maxkey
############################################################################

View File

@ -66,8 +66,7 @@ public class MaxKeyMgtApplication extends SpringBootServletInitializer {
logger.info("Start MaxKeyMgt Application ...");
ProductEnvironment.listEnvVars();
ConfigurableApplicationContext applicationContext =
SpringApplication.run(MaxKeyMgtApplication.class, args);
ConfigurableApplicationContext applicationContext = SpringApplication.run(MaxKeyMgtApplication.class, args);
InitializeContext initWebContext = new InitializeContext(applicationContext);
try {
@ -76,7 +75,7 @@ public class MaxKeyMgtApplication extends SpringBootServletInitializer {
logger.error("Exception ",e);
}
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.");
}

View File

@ -79,7 +79,7 @@ public class MaxKeyMgtListenerConfig implements InitializingBean {
ConnectorsService connectorsService,
JdbcTemplate jdbcTemplate,
ApplicationConfig applicationConfig
) throws SchedulerException {
) {
if(applicationConfig.isProvisionSupport()) {
ProvisioningRunner runner = new ProvisioningRunner(connectorsService,jdbcTemplate);
ProvisioningRunnerThread runnerThread = new ProvisioningRunnerThread(runner);

View File

@ -94,7 +94,7 @@ public class GroupsController {
group.setGroupCode(group.getId());
}
if (service.insert(group)) {
service.refreshDynamicRoles(group);
service.refreshDynamicGroups(group);
systemLog.insert(
ConstsEntryType.ROLE,
group,
@ -116,7 +116,7 @@ public class GroupsController {
}
group.setInstId(currentUser.getInstId());
if (service.update(group)) {
service.refreshDynamicRoles(group);
service.refreshDynamicGroups(group);
systemLog.insert(
ConstsEntryType.ROLE,
group,

View File

@ -16,7 +16,7 @@
#MaxKey Title and Version #
############################################################################
application.title =MaxKey-Mgt
application.formatted-version =v4.0.1 GA
application.formatted-version =v4.0.2 GA
#for dynamic service discovery
spring.application.name =maxkey-mgt
############################################################################

View File

@ -62,8 +62,7 @@ public class MaxKeyOpenApiApplication extends SpringBootServletInitializer {
logger.info("Start MaxKey OpenApi Application ...");
ProductEnvironment.listEnvVars();
ConfigurableApplicationContext applicationContext =
SpringApplication.run(MaxKeyOpenApiApplication.class, args);
ConfigurableApplicationContext applicationContext = SpringApplication.run(MaxKeyOpenApiApplication.class, args);
InitializeContext initWebContext = new InitializeContext(applicationContext);
try {
@ -72,7 +71,7 @@ public class MaxKeyOpenApiApplication extends SpringBootServletInitializer {
logger.error("Exception ",e);
}
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.");
}

View File

@ -16,7 +16,7 @@
#MaxKey Title and Version #
############################################################################
application.title =MaxKey-OpenApi
application.formatted-version =v4.0.1 GA
application.formatted-version =v4.0.2 GA
#for dynamic service discovery
spring.application.name =maxkey-openapi
############################################################################