use of org.apereo.cas.configuration.model.support.mfa.YubiKeyMultifactorProperties in project cas by apereo.
the class YubiKeyAuthenticationEventExecutionPlanConfiguration method yubicoClient.
@RefreshScope
@Bean
@ConditionalOnMissingBean(name = "yubicoClient")
public YubicoClient yubicoClient() {
final YubiKeyMultifactorProperties yubi = this.casProperties.getAuthn().getMfa().getYubikey();
if (StringUtils.isBlank(yubi.getSecretKey())) {
throw new IllegalArgumentException("Yubikey secret key cannot be blank");
}
if (yubi.getClientId() <= 0) {
throw new IllegalArgumentException("Yubikey client id is undefined");
}
final YubicoClient client = YubicoClient.getClient(yubi.getClientId(), yubi.getSecretKey());
if (!yubi.getApiUrls().isEmpty()) {
final String[] urls = yubi.getApiUrls().toArray(new String[] {});
client.setWsapiUrls(urls);
}
return client;
}
use of org.apereo.cas.configuration.model.support.mfa.YubiKeyMultifactorProperties in project cas by apereo.
the class YubiKeyAuthenticationEventExecutionPlanConfiguration method yubikeyAuthenticationHandler.
@Bean
@RefreshScope
@ConditionalOnMissingBean(name = "yubikeyAuthenticationHandler")
public AuthenticationHandler yubikeyAuthenticationHandler() {
final YubiKeyMultifactorProperties yubi = this.casProperties.getAuthn().getMfa().getYubikey();
final YubiKeyAuthenticationHandler handler = new YubiKeyAuthenticationHandler(yubi.getName(), servicesManager, yubikeyPrincipalFactory(), yubicoClient(), yubiKeyAccountRegistry());
return handler;
}
use of org.apereo.cas.configuration.model.support.mfa.YubiKeyMultifactorProperties in project cas by apereo.
the class MongoDbYubiKeyConfiguration method yubiKeyAccountRegistry.
@RefreshScope
@Bean
public YubiKeyAccountRegistry yubiKeyAccountRegistry() {
final YubiKeyMultifactorProperties yubi = casProperties.getAuthn().getMfa().getYubikey();
final MongoDbYubiKeyAccountRegistry registry = new MongoDbYubiKeyAccountRegistry(yubiKeyAccountValidator, mongoYubiKeyTemplate(), yubi.getMongo().getCollection());
registry.setCipherExecutor(this.yubikeyAccountCipherExecutor);
return registry;
}
use of org.apereo.cas.configuration.model.support.mfa.YubiKeyMultifactorProperties in project cas by apereo.
the class YubiKeyAuthenticationEventExecutionPlanConfiguration method yubiKeyAccountRegistry.
@Bean
@RefreshScope
@ConditionalOnMissingBean(name = "yubiKeyAccountRegistry")
public YubiKeyAccountRegistry yubiKeyAccountRegistry() {
final YubiKeyMultifactorProperties yubi = casProperties.getAuthn().getMfa().getYubikey();
if (yubi.getJsonFile() != null) {
LOGGER.debug("Using JSON resource [{}] as the YubiKey account registry", yubi.getJsonFile());
final JsonYubiKeyAccountRegistry registry = new JsonYubiKeyAccountRegistry(yubi.getJsonFile(), yubiKeyAccountValidator());
registry.setCipherExecutor(this.yubikeyAccountCipherExecutor);
return registry;
}
if (yubi.getAllowedDevices() != null) {
LOGGER.debug("Using statically-defined devices for [{}] as the YubiKey account registry", yubi.getAllowedDevices().keySet());
final WhitelistYubiKeyAccountRegistry registry = new WhitelistYubiKeyAccountRegistry(yubi.getAllowedDevices(), yubiKeyAccountValidator());
registry.setCipherExecutor(this.yubikeyAccountCipherExecutor);
return registry;
}
LOGGER.warn("All credentials are considered eligible for YubiKey authentication. " + "Consider providing an account registry implementation via [{}]", YubiKeyAccountRegistry.class.getName());
final OpenYubiKeyAccountRegistry registry = new OpenYubiKeyAccountRegistry(new DefaultYubiKeyAccountValidator(yubicoClient()));
registry.setCipherExecutor(this.yubikeyAccountCipherExecutor);
return registry;
}
Aggregations