package org.apereo.cas.configuration.model.core.web.security; import org.apereo.cas.configuration.model.core.authentication.PasswordEncoderProperties; import org.apereo.cas.configuration.model.support.jpa.AbstractJpaProperties; import org.apereo.cas.configuration.model.support.ldap.AbstractLdapAuthenticationProperties; import org.apereo.cas.configuration.model.support.ldap.LdapAuthorizationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; import org.springframework.core.io.Resource; import java.util.Arrays; import java.util.List; /** * This is {@link AdminPagesSecurityProperties}. * * @author Misagh Moayyed * @since 5.0.0 */ public class AdminPagesSecurityProperties { private String ip = "a^"; private List<String> adminRoles = Arrays.asList("ROLE_ADMIN", "ROLE_ACTUATOR"); private String loginUrl; private String service; private Resource users; private boolean actuatorEndpointsEnabled; private Jdbc jdbc = new Jdbc(); private Ldap ldap = new Ldap(); private Jaas jaas = new Jaas(); public Jaas getJaas() { return jaas; } public void setJaas(final Jaas jaas) { this.jaas = jaas; } public Jdbc getJdbc() { return jdbc; } public void setJdbc(final Jdbc jdbc) { this.jdbc = jdbc; } public boolean isActuatorEndpointsEnabled() { return actuatorEndpointsEnabled; } public void setActuatorEndpointsEnabled(final boolean actuatorEndpointsEnabled) { this.actuatorEndpointsEnabled = actuatorEndpointsEnabled; } public String getIp() { return ip; } public void setIp(final String ip) { this.ip = ip; } public List<String> getAdminRoles() { return adminRoles; } public void setAdminRoles(final List<String> adminRoles) { this.adminRoles = adminRoles; } public String getLoginUrl() { return loginUrl; } public void setLoginUrl(final String loginUrl) { this.loginUrl = loginUrl; } public String getService() { return service; } public void setService(final String service) { this.service = service; } public Resource getUsers() { return users; } public void setUsers(final Resource users) { this.users = users; } public Ldap getLdap() { return ldap; } public void setLdap(final Ldap ldap) { this.ldap = ldap; } public class Jaas { private Resource loginConfig; private boolean refreshConfigurationOnStartup = true; private String loginContextName; public Resource getLoginConfig() { return loginConfig; } public void setLoginConfig(final Resource loginConfig) { this.loginConfig = loginConfig; } public boolean isRefreshConfigurationOnStartup() { return refreshConfigurationOnStartup; } public void setRefreshConfigurationOnStartup(final boolean refreshConfigurationOnStartup) { this.refreshConfigurationOnStartup = refreshConfigurationOnStartup; } public String getLoginContextName() { return loginContextName; } public void setLoginContextName(final String loginContextName) { this.loginContextName = loginContextName; } } public class Ldap extends AbstractLdapAuthenticationProperties { @NestedConfigurationProperty private LdapAuthorizationProperties ldapAuthz = new LdapAuthorizationProperties(); /** * Gets ldap authz. * * @return the ldap authz */ public LdapAuthorizationProperties getLdapAuthz() { ldapAuthz.setBaseDn(getBaseDn()); ldapAuthz.setSearchFilter(getUserFilter()); return ldapAuthz; } public void setLdapAuthz(final LdapAuthorizationProperties ldapAuthz) { this.ldapAuthz = ldapAuthz; } } public class Jdbc extends AbstractJpaProperties { private String rolePrefix; private String query; @NestedConfigurationProperty private PasswordEncoderProperties passwordEncoder = new PasswordEncoderProperties(); public String getRolePrefix() { return rolePrefix; } public void setRolePrefix(final String rolePrefix) { this.rolePrefix = rolePrefix; } public String getQuery() { return query; } public void setQuery(final String query) { this.query = query; } public PasswordEncoderProperties getPasswordEncoder() { return passwordEncoder; } public void setPasswordEncoder(final PasswordEncoderProperties passwordEncoder) { this.passwordEncoder = passwordEncoder; } } }