diff --git a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtApplication.java b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtApplication.java
index 08adc90a7..c3c6f6268 100644
--- a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtApplication.java
+++ b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtApplication.java
@@ -15,29 +15,30 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
-@ImportResource(locations={"classpath:spring/maxkey-mgt.xml"})
+//@ImportResource(locations={"classpath:spring/maxkey-mgt.xml"})
@ComponentScan(basePackages = {
- "org.maxkey.MaxKeyMgtConfig",
- "org.maxkey.config",
- "org.maxkey.domain",
- "org.maxkey.domain.apps",
- "org.maxkey.domain.userinfo",
- "org.maxkey.web.endpoint",
- "org.maxkey.web.contorller",
- "org.maxkey.web.apps.contorller",
- "org.maxkey.web.endpoint",
- "org.maxkey.authn",
- "org.maxkey.dao",
- "org.maxkey.web",
- "org.maxkey.web.tag"
- }
-)
+ "org.maxkey.MaxKeyMgtConfig",
+ "org.maxkey.MaxKeyMgtMvcConfig",
+ "org.maxkey.web.interceptor",
+ "org.maxkey.config",
+ "org.maxkey.domain",
+ "org.maxkey.domain.apps",
+ "org.maxkey.domain.userinfo",
+ "org.maxkey.web.endpoint",
+ "org.maxkey.web.contorller",
+ "org.maxkey.web.apps.contorller",
+ "org.maxkey.web.endpoint",
+ "org.maxkey.authn",
+ "org.maxkey.dao",
+ "org.maxkey.web",
+ "org.maxkey.web.tag"
+})
@MapperScan("org.maxkey.dao.persistence,")
public class MaxKeyMgtApplication extends SpringBootServletInitializer {
private static final Logger _logger = LoggerFactory.getLogger(MaxKeyMgtApplication.class);
public static void main(String[] args) {
- System.out.println("MaxKeyMgtApplication");
+ _logger.info("Start MaxKeyMgtApplication ...");
ConfigurableApplicationContext applicationContext =SpringApplication.run(MaxKeyMgtApplication.class, args);
InitializeContext initWebContext=new InitializeContext(applicationContext);
diff --git a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtConfig.java b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtConfig.java
index 5983a964e..ccbc57e59 100644
--- a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtConfig.java
+++ b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtConfig.java
@@ -2,6 +2,8 @@ package org.maxkey;
import javax.sql.DataSource;
import org.maxkey.authz.oauth2.provider.client.JdbcClientDetailsService;
+import org.maxkey.crypto.password.opt.impl.TimeBasedOtpAuthn;
+import org.maxkey.authn.realm.jdbc.JdbcAuthenticationRealm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
@@ -9,6 +11,7 @@ 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.security.crypto.password.PasswordEncoder;
@Configuration
@@ -32,9 +35,26 @@ public class MaxKeyMgtConfig implements InitializingBean {
DataSource dataSource,PasswordEncoder passwordReciprocal) {
JdbcClientDetailsService clientDetailsService = new JdbcClientDetailsService(dataSource);
clientDetailsService.setPasswordEncoder(passwordReciprocal);
+ _logger.debug("JdbcClientDetailsService inited.");
return clientDetailsService;
}
-
+
+ //以下内容可以注释掉后再xml中配置,xml引入在MaxKeyMgtApplication中
+ @Bean(name = "authenticationRealm")
+ public JdbcAuthenticationRealm JdbcAuthenticationRealm(
+ JdbcTemplate jdbcTemplate) {
+ JdbcAuthenticationRealm authenticationRealm = new JdbcAuthenticationRealm(jdbcTemplate);
+ _logger.debug("JdbcAuthenticationRealm inited.");
+ return authenticationRealm;
+ }
+
+ @Bean(name = "tfaOptAuthn")
+ public TimeBasedOtpAuthn tfaOptAuthn() {
+ TimeBasedOtpAuthn tfaOptAuthn = new TimeBasedOtpAuthn();
+ _logger.debug("TimeBasedOtpAuthn inited.");
+ return tfaOptAuthn;
+ }
+
@Override
public void afterPropertiesSet() throws Exception {
// TODO Auto-generated method stub
diff --git a/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtMvcConfig.java b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtMvcConfig.java
new file mode 100644
index 000000000..6d173c224
--- /dev/null
+++ b/maxkey-web-manage/src/main/java/org/maxkey/MaxKeyMgtMvcConfig.java
@@ -0,0 +1,72 @@
+package org.maxkey;
+
+import org.maxkey.web.interceptor.HistoryLogsAdapter;
+import org.maxkey.web.interceptor.PermissionAdapter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
+
+@Configuration
+@EnableWebMvc
+public class MaxKeyMgtMvcConfig implements WebMvcConfigurer {
+ private static final Logger _logger = LoggerFactory.getLogger(MaxKeyMgtMvcConfig.class);
+ @Autowired
+ PermissionAdapter permissionAdapter;
+
+ @Autowired
+ HistoryLogsAdapter historyLogsAdapter;
+
+ @Autowired
+ LocaleChangeInterceptor localeChangeInterceptor;
+
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("/static/**")
+ .addResourceLocations("classpath:/static/");
+ registry.addResourceHandler("/templates/**")
+ .addResourceLocations("classpath:/templates/");
+ _logger.debug("add addResourceHandler");
+ }
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ //addPathPatterns 用于添加拦截规则 , 先把所有路径都加入拦截, 再一个个排除
+ //excludePathPatterns 表示改路径不用拦截
+ registry.addInterceptor(permissionAdapter)
+ .addPathPatterns("/main/**")
+ .addPathPatterns("/orgs/**")
+ .addPathPatterns("/userinfo/**")
+ .addPathPatterns("/apps/**")
+ .addPathPatterns("/groups/**")
+ .addPathPatterns("/groupMember/**")
+ .addPathPatterns("/groupPrivileges/**")
+ .addPathPatterns("/config/**")
+ .addPathPatterns("/logs/**")
+ ;
+ _logger.debug("add PermissionAdapter");
+
+ registry.addInterceptor(historyLogsAdapter)
+ .addPathPatterns("/users/*")
+ .addPathPatterns("/userinfo/**")
+ .addPathPatterns("/enterprises/**")
+ .addPathPatterns("/employees/**")
+ .addPathPatterns("/authInfo/**")
+ .addPathPatterns("/usercenter/**")
+ .addPathPatterns("/retrievePassword/**")
+ .addPathPatterns("/roles/**")
+ .addPathPatterns("/apps/**")
+ .addPathPatterns("/approles/**")
+ ;
+ _logger.debug("add HistoryLogsAdapter");
+ registry.addInterceptor(localeChangeInterceptor);
+ _logger.debug("add LocaleChangeInterceptor");
+
+ }
+
+}
diff --git a/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java b/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
index 4e56a7ee0..39fe45296 100644
--- a/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
+++ b/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
@@ -14,6 +14,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -25,6 +27,7 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
* @author Crystal.Sea
*
*/
+@Component
public class HistoryLogsAdapter extends HandlerInterceptorAdapter {
private static final Logger _logger = LoggerFactory.getLogger(HistoryLogsAdapter.class);
diff --git a/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java b/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java
index cf475aed3..1efac9deb 100644
--- a/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java
+++ b/maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java
@@ -12,6 +12,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
/**
* 权限Interceptor处理
@@ -20,7 +22,7 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
* @author Crystal.Sea
*
*/
-
+@Component
public class PermissionAdapter extends HandlerInterceptorAdapter {
private static final Logger _logger = LoggerFactory.getLogger(PermissionAdapter.class);
//无需Interceptor url
diff --git a/maxkey-web-manage/src/main/resources/META-INF/spring.factories b/maxkey-web-manage/src/main/resources/META-INF/spring.factories
index 99a285239..55fc464fe 100644
--- a/maxkey-web-manage/src/main/resources/META-INF/spring.factories
+++ b/maxkey-web-manage/src/main/resources/META-INF/spring.factories
@@ -5,4 +5,5 @@ org.maxkey.autoconfigure.KaptchaAutoConfiguration,\
org.maxkey.autoconfigure.MvcAutoConfiguration,\
org.maxkey.autoconfigure.JwtAuthnAutoConfiguration,\
org.maxkey.autoconfigure.RedisAutoConfiguration,\
-org.maxkey.MaxKeyMgtConfig
+org.maxkey.MaxKeyMgtConfig,\
+org.maxkey.MaxKeyMgtMvcConfig
diff --git a/maxkey-web-manage/src/main/resources/application.properties b/maxkey-web-manage/src/main/resources/application.properties
index a64ce7d25..944a7119c 100644
--- a/maxkey-web-manage/src/main/resources/application.properties
+++ b/maxkey-web-manage/src/main/resources/application.properties
@@ -3,7 +3,6 @@
application.title=MaxKey
application.name=MaxKey-Mgt
application.formatted-version=v1.5.0 GA
-
#server config
#server port
server.port=9521
@@ -58,5 +57,6 @@ spring.freemarker.suffix=.ftl
spring.mvc.static-path-pattern=/static/**
spring.messages.basename=classpath:messages/message
spring.messages.encoding=UTF-8
-
+#main
+spring.main.banner-mode=log
spring.main.allow-bean-definition-overriding=true
\ No newline at end of file
diff --git a/maxkey-web-manage/src/main/resources/banner.txt b/maxkey-web-manage/src/main/resources/banner.txt
index d12dba7ca..c0df3d639 100644
--- a/maxkey-web-manage/src/main/resources/banner.txt
+++ b/maxkey-web-manage/src/main/resources/banner.txt
@@ -1,3 +1,4 @@
+
__ ___ __ __
/ |/ /__ ___ __ / //_/__ __ __
/ /|_/ / _ `/\ \ // ,< / -_) // /
diff --git a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt.xml b/maxkey-web-manage/src/main/resources/spring/maxkey-mgt.xml
index 73b1d1940..53d24ab50 100644
--- a/maxkey-web-manage/src/main/resources/spring/maxkey-mgt.xml
+++ b/maxkey-web-manage/src/main/resources/spring/maxkey-mgt.xml
@@ -17,46 +17,7 @@
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -105,8 +66,5 @@
-
-
-
\ No newline at end of file
diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java b/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java
index bd0af68d0..23982f116 100644
--- a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java
+++ b/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java
@@ -21,6 +21,8 @@ public class MaxKeyApplication extends SpringBootServletInitializer {
* @param args args
*/
public static void main(String[] args) {
+ _logger.info("Start MaxKeyApplication ...");
+
VFS.addImplClass(SpringBootVFS.class);
ConfigurableApplicationContext applicationContext =
SpringApplication.run(MaxKeyApplication.class, args);
diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLoginAppAdapter.java b/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLoginAppAdapter.java
index 67546fdc3..18eca1736 100644
--- a/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLoginAppAdapter.java
+++ b/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLoginAppAdapter.java
@@ -37,21 +37,14 @@ public class HistoryLoginAppAdapter extends HandlerInterceptorAdapter {
HttpServletResponse response,
Object handler,ModelAndView modelAndView) throws Exception {
_logger.debug("postHandle");
- String appId = null;
- if (WebContext.getAttribute(WebConstants.SINGLE_SIGN_ON_APP_ID) != null) {
- appId = WebContext.getAttribute(WebConstants.SINGLE_SIGN_ON_APP_ID).toString();
- }
- if (appId == null) {
- PreLoginAppAdapter.getAppIdFromRequestUrl(request);
- }
- //Applications app=applicationsService.get(appId);
+
final Apps app = (Apps)WebContext.getAttribute(AuthorizeBaseEndpoint.class.getName());
String sessionId = (String)WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID);
final UserInfo userInfo = WebContext.getUserInfo();
- _logger.debug("sessionId : " + sessionId + " ,appId : " + appId);
+ _logger.debug("sessionId : " + sessionId + " ,appId : " + app.getId());
HistoryLoginApps historyLoginApps = new HistoryLoginApps();
historyLoginApps.setId(historyLoginApps.generateId());
- historyLoginApps.setAppId(appId);
+ historyLoginApps.setAppId(app.getId());
historyLoginApps.setSessionId(sessionId);
historyLoginApps.setAppName(app.getName());
historyLoginApps.setUid(userInfo.getId());
diff --git a/maxkey-web-maxkey/src/main/resources/application.properties b/maxkey-web-maxkey/src/main/resources/application.properties
index 13b4a5923..196b303a8 100644
--- a/maxkey-web-maxkey/src/main/resources/application.properties
+++ b/maxkey-web-maxkey/src/main/resources/application.properties
@@ -64,4 +64,5 @@ spring.mvc.static-path-pattern=/static/**
spring.messages.basename=classpath:messages/message
spring.messages.encoding=UTF-8
#main
+spring.main.banner-mode=log
spring.main.allow-bean-definition-overriding=true
diff --git a/maxkey-web-maxkey/src/main/resources/banner.txt b/maxkey-web-maxkey/src/main/resources/banner.txt
index d12dba7ca..c0df3d639 100644
--- a/maxkey-web-maxkey/src/main/resources/banner.txt
+++ b/maxkey-web-maxkey/src/main/resources/banner.txt
@@ -1,3 +1,4 @@
+
__ ___ __ __
/ |/ /__ ___ __ / //_/__ __ __
/ /|_/ / _ `/\ \ // ,< / -_) // /
diff --git a/maxkey-web-maxkey/src/main/resources/spring/maxkey.xml b/maxkey-web-maxkey/src/main/resources/spring/maxkey.xml
index 7599162db..37d5ba432 100644
--- a/maxkey-web-maxkey/src/main/resources/spring/maxkey.xml
+++ b/maxkey-web-maxkey/src/main/resources/spring/maxkey.xml
@@ -17,7 +17,6 @@
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
-
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
-
+
-
+
+
@@ -213,7 +208,8 @@
-
+
+
@@ -288,6 +284,9 @@
+
+
+