提交 9770acf9 编写于 作者: M MaxKey

separate common

上级 647d8997
......@@ -11,5 +11,6 @@ dependencies {
compile project(":maxkey-persistence")
compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
compile project(":maxkey-protocols:maxkey-protocol-saml-2.0")
compile project(":maxkey-authentications:maxkey-authentication-otp")
}
\ No newline at end of file
/*
* 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.maxkey.autoconfigure;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.maxkey.authn.AbstractAuthenticationProvider;
import org.maxkey.authn.RealmAuthenticationProvider;
import org.maxkey.authn.SavedRequestAwareAuthenticationSuccessHandler;
import org.maxkey.authn.online.InMemoryOnlineTicketServices;
import org.maxkey.authn.online.OnlineTicketServices;
import org.maxkey.authn.online.RedisOnlineTicketServices;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.authn.support.rememberme.InMemoryRemeberMeService;
import org.maxkey.authn.support.rememberme.RedisRemeberMeService;
import org.maxkey.constants.ConstantsPersistence;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.crypto.password.LdapShaPasswordEncoder;
import org.maxkey.crypto.password.Md4PasswordEncoder;
import org.maxkey.crypto.password.NoOpPasswordEncoder;
import org.maxkey.crypto.password.MessageDigestPasswordEncoder;
import org.maxkey.crypto.password.SM3PasswordEncoder;
import org.maxkey.crypto.password.StandardPasswordEncoder;
import org.maxkey.persistence.db.PasswordPolicyValidator;
import org.maxkey.persistence.redis.RedisConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.DelegatingPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
import org.maxkey.persistence.db.LoginService;
import org.maxkey.persistence.db.LoginHistoryService;
@Configuration
@PropertySource(ConstantsProperties.applicationPropertySource)
@PropertySource(ConstantsProperties.maxKeyPropertySource)
public class AuthenticationAutoConfiguration implements InitializingBean {
private static final Logger _logger =
LoggerFactory.getLogger(AuthenticationAutoConfiguration.class);
@Bean(name = "savedRequestSuccessHandler")
public SavedRequestAwareAuthenticationSuccessHandler
savedRequestAwareAuthenticationSuccessHandler() {
return new SavedRequestAwareAuthenticationSuccessHandler();
}
@Bean(name = "authenticationProvider")
public AbstractAuthenticationProvider authenticationProvider() {
return new RealmAuthenticationProvider();
}
@Bean(name = "transactionManager")
public DataSourceTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "passwordPolicyValidator")
public PasswordPolicyValidator passwordPolicyValidator(JdbcTemplate jdbcTemplate,MessageSource messageSource) {
return new PasswordPolicyValidator(jdbcTemplate,messageSource);
}
@Bean(name = "loginService")
public LoginService LoginService(JdbcTemplate jdbcTemplate) {
return new LoginService(jdbcTemplate);
}
@Bean(name = "loginHistoryService")
public LoginHistoryService loginHistoryService(JdbcTemplate jdbcTemplate) {
return new LoginHistoryService(jdbcTemplate);
}
/**
* Authentication Password Encoder .
* @return
*/
@Bean(name = "passwordEncoder")
public PasswordEncoder passwordEncoder() {
String idForEncode = "bcrypt";
Map<String ,PasswordEncoder > encoders = new HashMap<String ,PasswordEncoder>();
encoders.put(idForEncode, new BCryptPasswordEncoder());
encoders.put("plain", NoOpPasswordEncoder.getInstance());
encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
encoders.put("scrypt", new SCryptPasswordEncoder());
//md
encoders.put("md4", new Md4PasswordEncoder());
encoders.put("md5", new MessageDigestPasswordEncoder("MD5"));
//sha
encoders.put("sha1", new StandardPasswordEncoder("SHA-1",""));
encoders.put("sha256", new StandardPasswordEncoder());
encoders.put("sha384", new StandardPasswordEncoder("SHA-384",""));
encoders.put("sha512", new StandardPasswordEncoder("SHA-512",""));
encoders.put("sm3", new SM3PasswordEncoder());
encoders.put("ldap", new LdapShaPasswordEncoder());
//idForEncode is default for encoder
PasswordEncoder passwordEncoder =
new DelegatingPasswordEncoder(idForEncode, encoders);
return passwordEncoder;
}
/**
* remeberMeService .
* @return
*/
@Bean(name = "remeberMeService")
public AbstractRemeberMeService remeberMeService(
@Value("${config.server.persistence}") int persistence,
@Value("${config.login.remeberme.validity}") int validity,
JdbcTemplate jdbcTemplate,
RedisConnectionFactory redisConnFactory) {
AbstractRemeberMeService remeberMeService = null;
if (persistence == ConstantsPersistence.INMEMORY) {
remeberMeService = new InMemoryRemeberMeService();
_logger.debug("InMemoryRemeberMeService");
} else if (persistence == ConstantsPersistence.JDBC) {
//remeberMeService = new JdbcRemeberMeService(jdbcTemplate);
_logger.debug("JdbcRemeberMeService not support ");
} else if (persistence == ConstantsPersistence.REDIS) {
remeberMeService = new RedisRemeberMeService(redisConnFactory);
_logger.debug("RedisRemeberMeService");
}
return remeberMeService;
}
@Bean(name = "onlineTicketServices")
public OnlineTicketServices onlineTicketServices(
@Value("${config.server.persistence}") int persistence,
JdbcTemplate jdbcTemplate,
RedisConnectionFactory redisConnFactory) {
OnlineTicketServices onlineTicketServices = null;
if (persistence == ConstantsPersistence.INMEMORY) {
onlineTicketServices = new InMemoryOnlineTicketServices();
_logger.debug("InMemoryOnlineTicketServices");
} else if (persistence == ConstantsPersistence.JDBC) {
_logger.debug("OnlineTicketServices not support ");
} else if (persistence == ConstantsPersistence.REDIS) {
onlineTicketServices = new RedisOnlineTicketServices(redisConnFactory);
_logger.debug("RedisOnlineTicketServices");
}
return onlineTicketServices;
}
@Override
public void afterPropertiesSet() throws Exception {
// TODO Auto-generated method stub
}
}
......@@ -9,5 +9,6 @@ dependencies {
compile project(":maxkey-common")
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -2,7 +2,6 @@ description = "maxkey-core"
dependencies {
compile project(":maxkey-common")
compile project(":maxkey-authentications:maxkey-authentication-otp")
//local jars
compile fileTree(dir: '../maxkey-lib/', include: '*/*.jar')
......
......@@ -23,17 +23,6 @@ import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.maxkey.authn.AbstractAuthenticationProvider;
import org.maxkey.authn.RealmAuthenticationProvider;
import org.maxkey.authn.SavedRequestAwareAuthenticationSuccessHandler;
import org.maxkey.authn.online.InMemoryOnlineTicketServices;
import org.maxkey.authn.online.OnlineTicketServices;
import org.maxkey.authn.online.RedisOnlineTicketServices;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.authn.support.rememberme.InMemoryRemeberMeService;
import org.maxkey.authn.support.rememberme.RedisRemeberMeService;
import org.maxkey.constants.ConstantsPersistence;
import org.maxkey.constants.ConstantsProperties;
import org.maxkey.crypto.keystore.KeyStoreLoader;
import org.maxkey.crypto.password.LdapShaPasswordEncoder;
......@@ -43,14 +32,11 @@ import org.maxkey.crypto.password.MessageDigestPasswordEncoder;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.crypto.password.SM3PasswordEncoder;
import org.maxkey.crypto.password.StandardPasswordEncoder;
import org.maxkey.persistence.db.PasswordPolicyValidator;
import org.maxkey.persistence.redis.RedisConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
......@@ -66,8 +52,6 @@ import org.springframework.security.crypto.password.DelegatingPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
import org.maxkey.persistence.db.LoginService;
import org.maxkey.persistence.db.LoginHistoryService;
@Configuration
......@@ -115,16 +99,6 @@ public class ApplicationAutoConfiguration implements InitializingBean {
return new PasswordReciprocal();
}
@Bean(name = "savedRequestSuccessHandler")
public SavedRequestAwareAuthenticationSuccessHandler
savedRequestAwareAuthenticationSuccessHandler() {
return new SavedRequestAwareAuthenticationSuccessHandler();
}
@Bean(name = "authenticationProvider")
public AbstractAuthenticationProvider authenticationProvider() {
return new RealmAuthenticationProvider();
}
@Bean(name = "jdbcTemplate")
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
......@@ -136,20 +110,6 @@ public class ApplicationAutoConfiguration implements InitializingBean {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "passwordPolicyValidator")
public PasswordPolicyValidator passwordPolicyValidator(JdbcTemplate jdbcTemplate,MessageSource messageSource) {
return new PasswordPolicyValidator(jdbcTemplate,messageSource);
}
@Bean(name = "loginService")
public LoginService LoginService(JdbcTemplate jdbcTemplate) {
return new LoginService(jdbcTemplate);
}
@Bean(name = "loginHistoryService")
public LoginHistoryService loginHistoryService(JdbcTemplate jdbcTemplate) {
return new LoginHistoryService(jdbcTemplate);
}
/**
* Authentication Password Encoder .
......@@ -182,48 +142,7 @@ public class ApplicationAutoConfiguration implements InitializingBean {
return passwordEncoder;
}
/**
* remeberMeService .
* @return
*/
@Bean(name = "remeberMeService")
public AbstractRemeberMeService remeberMeService(
@Value("${config.server.persistence}") int persistence,
@Value("${config.login.remeberme.validity}") int validity,
JdbcTemplate jdbcTemplate,
RedisConnectionFactory redisConnFactory) {
AbstractRemeberMeService remeberMeService = null;
if (persistence == ConstantsPersistence.INMEMORY) {
remeberMeService = new InMemoryRemeberMeService();
_logger.debug("InMemoryRemeberMeService");
} else if (persistence == ConstantsPersistence.JDBC) {
//remeberMeService = new JdbcRemeberMeService(jdbcTemplate);
_logger.debug("JdbcRemeberMeService not support ");
} else if (persistence == ConstantsPersistence.REDIS) {
remeberMeService = new RedisRemeberMeService(redisConnFactory);
_logger.debug("RedisRemeberMeService");
}
return remeberMeService;
}
@Bean(name = "onlineTicketServices")
public OnlineTicketServices onlineTicketServices(
@Value("${config.server.persistence}") int persistence,
JdbcTemplate jdbcTemplate,
RedisConnectionFactory redisConnFactory) {
OnlineTicketServices onlineTicketServices = null;
if (persistence == ConstantsPersistence.INMEMORY) {
onlineTicketServices = new InMemoryOnlineTicketServices();
_logger.debug("InMemoryOnlineTicketServices");
} else if (persistence == ConstantsPersistence.JDBC) {
_logger.debug("OnlineTicketServices not support ");
} else if (persistence == ConstantsPersistence.REDIS) {
onlineTicketServices = new RedisOnlineTicketServices(redisConnFactory);
_logger.debug("RedisOnlineTicketServices");
}
return onlineTicketServices;
}
/**
* keyStoreLoader .
......
......@@ -9,7 +9,6 @@ dependencies {
compile project(":maxkey-common")
compile project(":maxkey-core")
compile project(":maxkey-persistence")
//compileOnly project(":maxkey-protocols:maxkey-protocol-oauth-2.0")
//compileOnly project(":maxkey-protocols:maxkey-protocol-saml-2.0")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -17,5 +17,6 @@ dependencies {
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-protocols:maxkey-protocol-authorize")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -10,5 +10,6 @@ dependencies {
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-protocols:maxkey-protocol-authorize")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -10,4 +10,5 @@ dependencies {
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-protocols:maxkey-protocol-authorize")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -10,5 +10,6 @@ dependencies {
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-protocols:maxkey-protocol-authorize")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -10,5 +10,6 @@ dependencies {
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-protocols:maxkey-protocol-authorize")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -8,5 +8,5 @@ dependencies {
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-protocols:maxkey-protocol-authorize")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -7,4 +7,5 @@ dependencies {
compile project(":maxkey-common")
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -10,5 +10,6 @@ dependencies {
compile project(":maxkey-core")
compile project(":maxkey-persistence")
compile project(":maxkey-protocols:maxkey-protocol-authorize")
compile project(":maxkey-authentications:maxkey-authentication-core")
}
\ No newline at end of file
......@@ -62,6 +62,7 @@ jib {
dependencies {
compile project(":maxkey-common")
compile project(":maxkey-core")
compile project(":maxkey-authentications:maxkey-authentication-core")
compile project(":maxkey-authentications:maxkey-authentication-captcha")
compile project(":maxkey-authentications:maxkey-authentication-otp")
compile project(":maxkey-persistence")
......
......@@ -5,5 +5,6 @@ org.maxkey.autoconfigure.KaptchaAutoConfiguration,\
org.maxkey.autoconfigure.MvcAutoConfiguration,\
org.maxkey.autoconfigure.JwtAuthnAutoConfiguration,\
org.maxkey.autoconfigure.RedisAutoConfiguration,\
org.maxkey.autoconfigure.AuthenticationAutoConfiguration,\
org.maxkey.MaxKeyMgtConfig,\
org.maxkey.MaxKeyMgtMvcConfig
......@@ -4,6 +4,7 @@ org.maxkey.autoconfigure.ApplicationAutoConfiguration,\
org.maxkey.autoconfigure.MvcAutoConfiguration,\
org.maxkey.autoconfigure.KaptchaAutoConfiguration,\
org.maxkey.autoconfigure.RedisAutoConfiguration,\
org.maxkey.autoconfigure.AuthenticationAutoConfiguration,\
org.maxkey.autoconfigure.CasAutoConfiguration,\
org.maxkey.autoconfigure.Oauth20AutoConfiguration,\
org.maxkey.autoconfigure.Saml20AutoConfiguration,\
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册