Selaa lähdekoodia

整合LoginHistoryRepository 到 HistoryLoginService

shimingxy 6 kuukautta sitten
vanhempi
commit
f19e92e2dc
12 muutettua tiedostoa jossa 61 lisäystä ja 174 poistoa
  1. 3 3
      maxkey-authentications/maxkey-authentication-provider-mgt/src/main/java/org/dromara/maxkey/authn/realm/AbstractAuthenticationRealm.java
  2. 5 5
      maxkey-authentications/maxkey-authentication-provider-mgt/src/main/java/org/dromara/maxkey/authn/realm/jdbc/JdbcAuthenticationRealm.java
  3. 0 6
      maxkey-authentications/maxkey-authentication-provider-mgt/src/main/java/org/dromara/maxkey/autoconfigure/AuthnProviderAutoConfiguration.java
  4. 3 3
      maxkey-authentications/maxkey-authentication-provider/src/main/java/org/dromara/maxkey/authn/realm/AbstractAuthenticationRealm.java
  5. 5 5
      maxkey-authentications/maxkey-authentication-provider/src/main/java/org/dromara/maxkey/authn/realm/jdbc/JdbcAuthenticationRealm.java
  6. 0 6
      maxkey-authentications/maxkey-authentication-provider/src/main/java/org/dromara/maxkey/autoconfigure/AuthnProviderAutoConfiguration.java
  7. 0 136
      maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/repository/LoginHistoryRepository.java
  8. 2 0
      maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/HistoryLoginService.java
  9. 34 1
      maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/HistoryLoginServiceImpl.java
  10. 3 3
      maxkey-webs/maxkey-web-maxkey/src/main/java/org/dromara/maxkey/autoconfigure/MaxKeyConfig.java
  11. 3 3
      maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/autoconfigure/MaxKeyMgtConfig.java
  12. 3 3
      maxkey-webs/maxkey-web-openapi/src/main/java/org/dromara/maxkey/autoconfigure/MaxKeyOpenApiConfig.java

+ 3 - 3
maxkey-authentications/maxkey-authentication-provider-mgt/src/main/java/org/dromara/maxkey/authn/realm/AbstractAuthenticationRealm.java

@@ -28,9 +28,9 @@ import org.dromara.maxkey.entity.idm.Groups;
 import org.dromara.maxkey.entity.idm.UserInfo;
 import org.dromara.maxkey.ip2location.IpLocationParser;
 import org.dromara.maxkey.ip2location.Region;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
+import org.dromara.maxkey.persistence.service.HistoryLoginService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
 import org.dromara.maxkey.web.WebConstants;
 import org.dromara.maxkey.web.WebContext;
@@ -54,7 +54,7 @@ public abstract class AbstractAuthenticationRealm {
     
     protected LoginRepository loginRepository;
 
-    protected LoginHistoryRepository loginHistoryRepository;
+    protected HistoryLoginService historyLoginService;
     
     protected UserInfoService userInfoService;
     
@@ -158,7 +158,7 @@ public abstract class AbstractAuthenticationRealm {
         	historyLogin.setCity(ipRegion.getCity());
         	historyLogin.setLocation(ipRegion.getAddr());
         }
-        loginHistoryRepository.login(historyLogin);
+        historyLoginService.login(historyLogin);
         
         loginRepository.updateLastLogin(userInfo);
 

+ 5 - 5
maxkey-authentications/maxkey-authentication-provider-mgt/src/main/java/org/dromara/maxkey/authn/realm/jdbc/JdbcAuthenticationRealm.java

@@ -26,9 +26,9 @@ import org.dromara.maxkey.entity.ChangePassword;
 import org.dromara.maxkey.entity.cnf.CnfPasswordPolicy;
 import org.dromara.maxkey.entity.idm.UserInfo;
 import org.dromara.maxkey.ip2location.IpLocationParser;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
+import org.dromara.maxkey.persistence.service.HistoryLoginService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
 import org.dromara.maxkey.web.WebConstants;
 import org.dromara.maxkey.web.WebContext;
@@ -60,7 +60,7 @@ public class JdbcAuthenticationRealm extends AbstractAuthenticationRealm {
     		PasswordEncoder passwordEncoder,
     		PasswordPolicyValidator passwordPolicyValidator,
     		LoginRepository loginRepository,
-    		LoginHistoryRepository loginHistoryRepository,
+    		HistoryLoginService historyLoginService,
     		UserInfoService userInfoService,
     		IpLocationParser ipLocationParser,
     	    JdbcTemplate jdbcTemplate) {
@@ -68,7 +68,7 @@ public class JdbcAuthenticationRealm extends AbstractAuthenticationRealm {
     	this.passwordEncoder =passwordEncoder;
     	this.passwordPolicyValidator=passwordPolicyValidator;
     	this.loginRepository = loginRepository;
-    	this.loginHistoryRepository = loginHistoryRepository;
+    	this.historyLoginService = historyLoginService;
     	this.userInfoService = userInfoService;
     	this.ipLocationParser = ipLocationParser;
         this.jdbcTemplate = jdbcTemplate;
@@ -78,7 +78,7 @@ public class JdbcAuthenticationRealm extends AbstractAuthenticationRealm {
     		PasswordEncoder passwordEncoder,
     		PasswordPolicyValidator passwordPolicyValidator,
     		LoginRepository loginRepository,
-    		LoginHistoryRepository loginHistoryRepository,
+    		HistoryLoginService historyLoginService,
     		UserInfoService userInfoService,
     		IpLocationParser ipLocationParser,
     	    JdbcTemplate jdbcTemplate,
@@ -86,7 +86,7 @@ public class JdbcAuthenticationRealm extends AbstractAuthenticationRealm {
 		this.passwordEncoder = passwordEncoder;
 		this.passwordPolicyValidator = passwordPolicyValidator;
 		this.loginRepository = loginRepository;
-		this.loginHistoryRepository = loginHistoryRepository;
+		this.historyLoginService = historyLoginService;
 		this.userInfoService = userInfoService;
 		this.ipLocationParser = ipLocationParser;
 		this.jdbcTemplate = jdbcTemplate;

+ 0 - 6
maxkey-authentications/maxkey-authentication-provider-mgt/src/main/java/org/dromara/maxkey/autoconfigure/AuthnProviderAutoConfiguration.java

@@ -25,7 +25,6 @@ import org.dromara.maxkey.authn.realm.AbstractAuthenticationRealm;
 import org.dromara.maxkey.authn.session.SessionManager;
 import org.dromara.maxkey.configuration.ApplicationConfig;
 import org.dromara.maxkey.password.sms.SmsOtpAuthnService;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
 import org.slf4j.Logger;
@@ -109,9 +108,4 @@ public class AuthnProviderAutoConfiguration {
         return new LoginRepository(jdbcTemplate);
     }
 
-    @Bean
-    LoginHistoryRepository loginHistoryRepository(JdbcTemplate jdbcTemplate) {
-        return new LoginHistoryRepository(jdbcTemplate);
-    }
-
 }

+ 3 - 3
maxkey-authentications/maxkey-authentication-provider/src/main/java/org/dromara/maxkey/authn/realm/AbstractAuthenticationRealm.java

@@ -28,9 +28,9 @@ import org.dromara.maxkey.entity.idm.Groups;
 import org.dromara.maxkey.entity.idm.UserInfo;
 import org.dromara.maxkey.ip2location.IpLocationParser;
 import org.dromara.maxkey.ip2location.Region;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
+import org.dromara.maxkey.persistence.service.HistoryLoginService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
 import org.dromara.maxkey.web.WebConstants;
 import org.dromara.maxkey.web.WebContext;
@@ -54,7 +54,7 @@ public abstract class AbstractAuthenticationRealm {
     
     protected LoginRepository loginRepository;
 
-    protected LoginHistoryRepository loginHistoryRepository;
+    protected HistoryLoginService historyLoginService;
     
     protected UserInfoService userInfoService;
     
@@ -158,7 +158,7 @@ public abstract class AbstractAuthenticationRealm {
         	historyLogin.setCity(ipRegion.getCity());
         	historyLogin.setLocation(ipRegion.getAddr());
         }
-        loginHistoryRepository.login(historyLogin);
+        historyLoginService.login(historyLogin);
         
         loginRepository.updateLastLogin(userInfo);
 

+ 5 - 5
maxkey-authentications/maxkey-authentication-provider/src/main/java/org/dromara/maxkey/authn/realm/jdbc/JdbcAuthenticationRealm.java

@@ -26,9 +26,9 @@ import org.dromara.maxkey.entity.ChangePassword;
 import org.dromara.maxkey.entity.cnf.CnfPasswordPolicy;
 import org.dromara.maxkey.entity.idm.UserInfo;
 import org.dromara.maxkey.ip2location.IpLocationParser;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
+import org.dromara.maxkey.persistence.service.HistoryLoginService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
 import org.dromara.maxkey.web.WebConstants;
 import org.dromara.maxkey.web.WebContext;
@@ -60,7 +60,7 @@ public class JdbcAuthenticationRealm extends AbstractAuthenticationRealm {
     		PasswordEncoder passwordEncoder,
     		PasswordPolicyValidator passwordPolicyValidator,
     		LoginRepository loginRepository,
-    		LoginHistoryRepository loginHistoryRepository,
+    		HistoryLoginService historyLoginService,
     		UserInfoService userInfoService,
     		IpLocationParser ipLocationParser,
     	    JdbcTemplate jdbcTemplate) {
@@ -68,7 +68,7 @@ public class JdbcAuthenticationRealm extends AbstractAuthenticationRealm {
     	this.passwordEncoder =passwordEncoder;
     	this.passwordPolicyValidator=passwordPolicyValidator;
     	this.loginRepository = loginRepository;
-    	this.loginHistoryRepository = loginHistoryRepository;
+    	this.historyLoginService = historyLoginService;
     	this.userInfoService = userInfoService;
     	this.ipLocationParser = ipLocationParser;
         this.jdbcTemplate = jdbcTemplate;
@@ -78,7 +78,7 @@ public class JdbcAuthenticationRealm extends AbstractAuthenticationRealm {
     		PasswordEncoder passwordEncoder,
     		PasswordPolicyValidator passwordPolicyValidator,
     		LoginRepository loginRepository,
-    		LoginHistoryRepository loginHistoryRepository,
+    		HistoryLoginService historyLoginService,
     		UserInfoService userInfoService,
     		IpLocationParser ipLocationParser,
     	    JdbcTemplate jdbcTemplate,
@@ -86,7 +86,7 @@ public class JdbcAuthenticationRealm extends AbstractAuthenticationRealm {
 		this.passwordEncoder = passwordEncoder;
 		this.passwordPolicyValidator = passwordPolicyValidator;
 		this.loginRepository = loginRepository;
-		this.loginHistoryRepository = loginHistoryRepository;
+		this.historyLoginService = historyLoginService;
 		this.userInfoService = userInfoService;
 		this.ipLocationParser = ipLocationParser;
 		this.jdbcTemplate = jdbcTemplate;

+ 0 - 6
maxkey-authentications/maxkey-authentication-provider/src/main/java/org/dromara/maxkey/autoconfigure/AuthnProviderAutoConfiguration.java

@@ -27,7 +27,6 @@ import org.dromara.maxkey.authn.support.rememberme.AbstractRemeberMeManager;
 import org.dromara.maxkey.authn.support.rememberme.JdbcRemeberMeManager;
 import org.dromara.maxkey.configuration.ApplicationConfig;
 import org.dromara.maxkey.password.sms.SmsOtpAuthnService;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
 import org.slf4j.Logger;
@@ -143,11 +142,6 @@ public class AuthnProviderAutoConfiguration {
         return new LoginRepository(jdbcTemplate);
     }
 
-    @Bean
-    LoginHistoryRepository loginHistoryRepository(JdbcTemplate jdbcTemplate) {
-        return new LoginHistoryRepository(jdbcTemplate);
-    }
-
     /**
      * remeberMeService .
      * @return

+ 0 - 136
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/repository/LoginHistoryRepository.java

@@ -1,136 +0,0 @@
-/*
- * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *     http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-
-package org.dromara.maxkey.persistence.repository;
-
-import java.sql.Types;
-
-import org.apache.commons.lang3.StringUtils;
-import org.dromara.maxkey.entity.history.HistoryLogin;
-import org.dromara.maxkey.web.WebContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.jdbc.core.JdbcTemplate;
-
-public class LoginHistoryRepository {
-    private static Logger logger = LoggerFactory.getLogger(LoginHistoryRepository.class);
-    
-    private static final String HISTORY_LOGIN_INSERT_STATEMENT = """
-            insert into mxk_history_login 
-                (   id , 
-                    sessionid , 
-                    category ,
-                    userid ,
-                    username ,
-                    displayname , 
-                    logintype , 
-                    message , 
-                    code , 
-                    provider , 
-                    sourceip , 
-                    country , 
-                    province , 
-                    city , 
-                    location , 
-                    browser , 
-                    platform , 
-                    application , 
-                    sessionstatus ,
-                    instid)
-                values( ? , ? , ? , ? , ? , ? , ? , ?, ? , ? , ? , ?, ?, ? , ? , ?, ? , ? , ? , ?)
-    		""";
-
-    protected JdbcTemplate jdbcTemplate;
-    
-    public LoginHistoryRepository(JdbcTemplate jdbcTemplate) {
-        this.jdbcTemplate = jdbcTemplate;
-    }
-        
-    public void login(HistoryLogin historyLogin) {
-        historyLogin.setId(WebContext.genId());
-        if(StringUtils.isBlank(historyLogin.getInstId())) {
-        	historyLogin.setInstId("1");
-        }
-        //Thread insert 
-        new Thread(new HistoryLoginRunnable(jdbcTemplate,historyLogin)).start();
-    }
-    
-	public class HistoryLoginRunnable implements Runnable{
-		
-		JdbcTemplate jdbcTemplate;
-		
-		HistoryLogin historyLogin;
-		
-		public HistoryLoginRunnable(JdbcTemplate jdbcTemplate, HistoryLogin historyLogin) {
-			super();
-			this.jdbcTemplate = jdbcTemplate;
-			this.historyLogin = historyLogin;
-		}
-
-		@Override
-	    public void run() {
-			logger.debug("History Login {}" , historyLogin);
-			
-	        jdbcTemplate.update(HISTORY_LOGIN_INSERT_STATEMENT,
-	                new Object[] { 
-	                        historyLogin.getId(),
-	                        historyLogin.getSessionId(),
-	                        historyLogin.getCategory(),
-	                        historyLogin.getUserId(),
-	                        historyLogin.getUsername(),
-	                        historyLogin.getDisplayName(),
-	                        historyLogin.getLoginType(),
-	                        historyLogin.getMessage(),
-	                        historyLogin.getCode(),
-	                        historyLogin.getProvider(),
-	                        historyLogin.getSourceIp(),
-	                        historyLogin.getCountry(),
-	                        historyLogin.getProvince(),
-	                        historyLogin.getCity(),
-	                        historyLogin.getLocation(),
-	                        historyLogin.getBrowser(),
-	                        historyLogin.getPlatform(),
-	                        "Browser",
-	                        historyLogin.getSessionStatus(),
-	                        historyLogin.getInstId()
-	                        },
-	                new int[] { 
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.INTEGER,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.VARCHAR,
-	                        Types.INTEGER,
-	                        Types.VARCHAR
-	                        });
-		}
-	}
-    
-}

+ 2 - 0
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/HistoryLoginService.java

@@ -24,4 +24,6 @@ import org.dromara.mybatis.jpa.entity.JpaPageResults;
 public interface HistoryLoginService  extends IJpaService<HistoryLogin>{
 
 	public JpaPageResults<HistoryLogin> queryOnlineSession(HistoryLogin historyLogin);
+	
+	public void login(HistoryLogin historyLogin);
 }

+ 34 - 1
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/impl/HistoryLoginServiceImpl.java

@@ -17,17 +17,50 @@
 
 package org.dromara.maxkey.persistence.service.impl;
 
+import org.apache.commons.lang3.StringUtils;
 import org.dromara.maxkey.entity.history.HistoryLogin;
 import org.dromara.maxkey.persistence.mapper.HistoryLoginMapper;
 import org.dromara.maxkey.persistence.service.HistoryLoginService;
+import org.dromara.maxkey.web.WebContext;
 import org.dromara.mybatis.jpa.entity.JpaPageResults;
 import org.dromara.mybatis.jpa.service.impl.JpaServiceImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Repository;
 
 @Repository
 public class HistoryLoginServiceImpl  extends JpaServiceImpl<HistoryLoginMapper,HistoryLogin> implements HistoryLoginService{
-
+	private static Logger logger = LoggerFactory.getLogger(HistoryLoginServiceImpl.class);
+	
 	public JpaPageResults<HistoryLogin> queryOnlineSession(HistoryLogin historyLogin) {
 	    return this.fetchPageResults("queryOnlineSession",historyLogin);
 	}
+	
+	 public void login(HistoryLogin historyLogin) {
+	        historyLogin.setId(WebContext.genId());
+	        if(StringUtils.isBlank(historyLogin.getInstId())) {
+	        	historyLogin.setInstId("1");
+	        }
+	        //Thread insert 
+	        new Thread(new HistoryLoginRunnable(this,historyLogin)).start();
+	    }
+	    
+		public class HistoryLoginRunnable implements Runnable{
+			
+			HistoryLoginService historyLoginService;
+			
+			HistoryLogin historyLogin;
+			
+			public HistoryLoginRunnable(HistoryLoginService historyLoginService, HistoryLogin historyLogin) {
+				super();
+				this.historyLoginService = historyLoginService;
+				this.historyLogin = historyLogin;
+			}
+
+			@Override
+		    public void run() {
+				logger.debug("History Login {}" , historyLogin);
+				this.historyLoginService.insert(historyLogin);
+			}
+		}
 }

+ 3 - 3
maxkey-webs/maxkey-web-maxkey/src/main/java/org/dromara/maxkey/autoconfigure/MaxKeyConfig.java

@@ -42,10 +42,10 @@ import org.dromara.maxkey.password.onetimepwd.impl.MailOtpAuthn;
 import org.dromara.maxkey.password.onetimepwd.impl.TimeBasedOtpAuthn;
 import org.dromara.maxkey.password.onetimepwd.token.RedisOtpTokenStore;
 import org.dromara.maxkey.persistence.redis.RedisConnectionFactory;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
 import org.dromara.maxkey.persistence.service.CnfLdapContextService;
+import org.dromara.maxkey.persistence.service.HistoryLoginService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
 import org.dromara.maxkey.schedule.ScheduleAdapterBuilder;
 import org.quartz.Scheduler;
@@ -90,7 +90,7 @@ public class MaxKeyConfig  {
                 @Qualifier("passwordEncoder") PasswordEncoder passwordEncoder,
                 PasswordPolicyValidator passwordPolicyValidator,
                 LoginRepository loginService,
-                LoginHistoryRepository loginHistoryService,
+                HistoryLoginService historyLoginService,
                 UserInfoService userInfoService,
                 IpLocationParser  ipLocationParser,
                 JdbcTemplate jdbcTemplate,
@@ -101,7 +101,7 @@ public class MaxKeyConfig  {
         		passwordEncoder,
         		passwordPolicyValidator,
         		loginService,
-        		loginHistoryService,
+        		historyLoginService,
         		userInfoService,
         		ipLocationParser,
         		jdbcTemplate,

+ 3 - 3
maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/autoconfigure/MaxKeyMgtConfig.java

@@ -21,9 +21,9 @@ import org.dromara.maxkey.authn.realm.jdbc.JdbcAuthenticationRealm;
 import org.dromara.maxkey.ip2location.IpLocationParser;
 import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
 import org.dromara.maxkey.password.onetimepwd.impl.TimeBasedOtpAuthn;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
+import org.dromara.maxkey.persistence.service.HistoryLoginService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -44,7 +44,7 @@ public class MaxKeyMgtConfig  {
                 PasswordEncoder passwordEncoder,
                 PasswordPolicyValidator passwordPolicyValidator,
                 LoginRepository loginRepository,
-                LoginHistoryRepository loginHistoryRepository,
+                HistoryLoginService historyLoginService,
                 UserInfoService userInfoService,
                 IpLocationParser  ipLocationParser,
                 JdbcTemplate jdbcTemplate) {
@@ -53,7 +53,7 @@ public class MaxKeyMgtConfig  {
         		passwordEncoder,
         		passwordPolicyValidator,
         		loginRepository,
-        		loginHistoryRepository,
+        		historyLoginService,
         		userInfoService,
         		ipLocationParser,
         		jdbcTemplate);

+ 3 - 3
maxkey-webs/maxkey-web-openapi/src/main/java/org/dromara/maxkey/autoconfigure/MaxKeyOpenApiConfig.java

@@ -21,9 +21,9 @@ import org.dromara.maxkey.authn.realm.jdbc.JdbcAuthenticationRealm;
 import org.dromara.maxkey.ip2location.IpLocationParser;
 import org.dromara.maxkey.password.onetimepwd.AbstractOtpAuthn;
 import org.dromara.maxkey.password.onetimepwd.impl.TimeBasedOtpAuthn;
-import org.dromara.maxkey.persistence.repository.LoginHistoryRepository;
 import org.dromara.maxkey.persistence.repository.LoginRepository;
 import org.dromara.maxkey.persistence.repository.PasswordPolicyValidator;
+import org.dromara.maxkey.persistence.service.HistoryLoginService;
 import org.dromara.maxkey.persistence.service.UserInfoService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -44,7 +44,7 @@ public class MaxKeyOpenApiConfig{
                 PasswordEncoder passwordEncoder,
                 PasswordPolicyValidator passwordPolicyValidator,
                 LoginRepository loginRepository,
-                LoginHistoryRepository loginHistoryRepository,
+                HistoryLoginService historyLoginService,
                 UserInfoService userInfoService,
                 IpLocationParser  ipLocationParser,
                 JdbcTemplate jdbcTemplate) {
@@ -53,7 +53,7 @@ public class MaxKeyOpenApiConfig{
         		passwordEncoder,
         		passwordPolicyValidator,
         		loginRepository,
-        		loginHistoryRepository,
+        		historyLoginService,
         		userInfoService,
         		ipLocationParser,
         		jdbcTemplate);