use of org.jenkinsci.test.acceptance.po.GlobalSecurityConfig in project acceptance-test-harness by jenkinsci.
the class LdapPluginTest method login_use_fallback_server.
@Test
public void login_use_fallback_server() {
// Given
LdapContainer ldapContainer = ldap.get();
GlobalSecurityConfig securityConfig = new GlobalSecurityConfig(jenkins);
securityConfig.configure();
LdapSecurityRealm realm = securityConfig.useRealm(LdapSecurityRealm.class);
int freePort = this.findAvailablePort();
LdapDetails ldapDetails = new LdapDetails("", 0, ldapContainer.getManagerDn(), ldapContainer.getManagerPassword(), ldapContainer.getRootDn());
// Fallback-Config: primary server is not running, alternative server is running docker fixture
ldapDetails.setHostWithPort("localhost:" + freePort + ' ' + ldapContainer.getHost() + ':' + ldapContainer.getPort());
realm.configure(ldapDetails);
securityConfig.save();
// When
Login login = jenkins.login();
login.doLogin("jenkins", "root");
// Then
assertThat(jenkins, hasLoggedInUser("jenkins"));
}
use of org.jenkinsci.test.acceptance.po.GlobalSecurityConfig in project acceptance-test-harness by jenkinsci.
the class LdapPluginTest method login_no_ldap.
@Test
public void login_no_ldap() throws InterruptedException {
// Given
// don't start docker fixture here
// When
GlobalSecurityConfig security = new GlobalSecurityConfig(jenkins);
security.configure();
LdapSecurityRealm realm = security.useRealm(LdapSecurityRealm.class);
int freePort = findAvailablePort();
LdapDetails notRunningLdap = new LdapDetails("localhost", freePort, "cn=admin,dc=jenkins-ci,dc=org", "root", "dc=jenkins-ci,dc=org");
realm.configure(notRunningLdap);
security.save();
// Then
waitFor(security.open(), hasContent("Unable to connect to localhost:" + freePort), 5);
Login login = jenkins.login();
login.doLogin("jenkins", "root");
assertThat(jenkins, not(hasLoggedInUser("jenkins")));
}
use of org.jenkinsci.test.acceptance.po.GlobalSecurityConfig in project acceptance-test-harness by jenkinsci.
the class MatrixAuthPluginTest method projectMatrixAuth.
/**
* Test scenario:
*/
@Test
public void projectMatrixAuth() throws Exception {
GlobalSecurityConfig sc = new GlobalSecurityConfig(jenkins);
sc.open();
{
MockSecurityRealm ms = sc.useRealm(MockSecurityRealm.class);
ms.configure("alice", "bob");
ProjectBasedMatrixAuthorizationStrategy mas = sc.useAuthorizationStrategy(ProjectBasedMatrixAuthorizationStrategy.class);
MatrixRow a = mas.addUser("alice");
a.admin();
MatrixRow bob = mas.addUser("bob");
bob.on(OVERALL_READ);
}
sc.save();
jenkins.login().doLogin("alice");
// just create the job without configuring
FreeStyleJob j = jenkins.jobs.create();
jenkins.logout();
// bob shouldn't be able to see it without adding a permission for him
jenkins.login().doLogin("bob");
// check for job's existence
assertFalse(j.open().getTitle().contains(j.name));
jenkins.logout();
// alice will expose this job to bob
jenkins.login().doLogin("alice");
j.configure();
{
ProjectMatrixProperty p = new ProjectMatrixProperty(j);
p.enable.check();
MatrixRow bob = p.addUser("bob");
bob.on(ITEM_READ);
}
j.save();
jenkins.logout();
// bob should see this job
jenkins.login().doLogin("bob");
assertTrue(j.open().getTitle().contains(j.name));
}
use of org.jenkinsci.test.acceptance.po.GlobalSecurityConfig in project acceptance-test-harness by jenkinsci.
the class SAMLPluginTest method authenticationOKPostBinding.
@Test
@WithDocker
@WithPlugins({ "saml", "matrix-auth" })
public void authenticationOKPostBinding() throws IOException, InterruptedException {
// navigate to root
jenkins.open();
String rootUrl = jenkins.getCurrentUrl();
SAMLContainer samlServer = startSimpleSAML(rootUrl);
GlobalSecurityConfig sc = new GlobalSecurityConfig(jenkins);
sc.open();
// Authentication
SamlSecurityRealm realm = configureBasicSettings(sc);
String idpMetadata = readIdPMetadataFromURL(samlServer);
realm.setXml(idpMetadata);
realm.setBinding(SAML2_POST_BINDING_URI);
configureEncrytion(realm);
configureAuthorization(sc);
// SAML service login page
waitFor().withTimeout(10, TimeUnit.SECONDS).until(() -> hasContent("Enter your username and password"));
// SAML server login
makeLoginWithUser1();
}
Aggregations