/support/cas-server-support-trusted-mfa-mongo/src/main/java/org/apereo/cas/trusted/config/MongoDbMultifactorAuthenticationTrustConfiguration.java
https://github.com/frett/cas · Java · 65 lines · 50 code · 9 blank · 6 comment · 0 complexity · 40002807af9aeca747af02d9b6a3bb4d MD5 · raw file
- package org.apereo.cas.trusted.config;
- import org.apereo.cas.CipherExecutor;
- import org.apereo.cas.configuration.CasConfigurationProperties;
- import org.apereo.cas.mongo.MongoDbConnectionFactory;
- import org.apereo.cas.trusted.authentication.api.MultifactorAuthenticationTrustStorage;
- import org.apereo.cas.trusted.authentication.storage.MongoDbMultifactorAuthenticationTrustStorage;
- import lombok.val;
- import org.springframework.beans.factory.ObjectProvider;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.boot.context.properties.EnableConfigurationProperties;
- import org.springframework.cloud.context.config.annotation.RefreshScope;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
- import org.springframework.data.mongodb.core.MongoTemplate;
- /**
- * This is {@link MongoDbMultifactorAuthenticationTrustConfiguration}.
- *
- * @author Misagh Moayyed
- * @since 5.0.0
- */
- @Configuration("mongoDbMultifactorAuthenticationTrustConfiguration")
- @EnableConfigurationProperties(CasConfigurationProperties.class)
- public class MongoDbMultifactorAuthenticationTrustConfiguration {
- @Autowired
- private CasConfigurationProperties casProperties;
- @Autowired
- @Qualifier("mfaTrustCipherExecutor")
- private ObjectProvider<CipherExecutor> mfaTrustCipherExecutor;
- @RefreshScope
- @Bean
- public PersistenceExceptionTranslationPostProcessor persistenceMfaTrustedAuthnExceptionTranslationPostProcessor() {
- return new PersistenceExceptionTranslationPostProcessor();
- }
- @RefreshScope
- @Bean
- public MongoTemplate mongoMfaTrustedAuthnTemplate() {
- val mongo = casProperties.getAuthn().getMfa().getTrusted().getMongo();
- val factory = new MongoDbConnectionFactory();
- val mongoTemplate = factory.buildMongoTemplate(mongo);
- factory.createCollection(mongoTemplate, mongo.getCollection(), mongo.isDropCollection());
- return mongoTemplate;
- }
- @RefreshScope
- @Bean
- public MultifactorAuthenticationTrustStorage mfaTrustEngine() {
- val mongodb = casProperties.getAuthn().getMfa().getTrusted().getMongo();
- val m =
- new MongoDbMultifactorAuthenticationTrustStorage(
- mongodb.getCollection(),
- mongoMfaTrustedAuthnTemplate());
- m.setCipherExecutor(mfaTrustCipherExecutor.getIfAvailable());
- return m;
- }
- }