Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>In your LDAP server create next hierarchy:</p> <pre><code>+ o=your-organization-name (partition) + ou=users (organizationalUnit) - uid=your-id-user (inetOrgPerson), add userPassword attribute + ou=groups (organizationalUnit) - cn=your-user-role (groupOfNames), add the uid before created </code></pre> <p>security-domain on JBoss 7.1 (standalone.xml):</p> <pre><code> &lt;subsystem xmlns="urn:jboss:domain:security:1.1"&gt; &lt;security-domains&gt; ... &lt;security-domain name="SecurityRealm" cache-type="default"&gt; &lt;authentication&gt; &lt;login-module code="org.jboss.security.auth.spi.LdapLoginModule" flag="required"&gt; &lt;module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/&gt; &lt;module-option name="java.naming.provider.url" value="ldap://host-ldap-server:port-ldap-server/"/&gt; &lt;module-option name="java.naming.security.authentication" value="simple"/&gt; &lt;module-option name="principalDNPrefix" value="uid="/&gt; &lt;module-option name="principalDNSuffix" value=",ou=users,o=your-organization-name"/&gt; &lt;module-option name="rolesCtxDN" value="ou=groups,o=your-organization-name"/&gt; &lt;module-option name="uidAttributeID" value="member"/&gt; &lt;module-option name="matchOnUserDN" value="true"/&gt; &lt;module-option name="roleAttributeID" value="cn"/&gt; &lt;module-option name="roleAttributeIsDN" value="false"/&gt; &lt;/login-module&gt; &lt;/authentication&gt; &lt;/security-domain&gt; &lt;/security-domains&gt; </code></pre> <p>in your jboss-web.xml </p> <pre><code>&lt;security-domain&gt;SecurityRealm&lt;/security-domain&gt; </code></pre> <p>and the most important: is the user allowed to access to this page? (web.xml):</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"&gt; &lt;!-- Protected Areas --&gt; &lt;security-constraint&gt; &lt;display-name&gt;Protected&lt;/display-name&gt; &lt;web-resource-collection&gt; &lt;url-pattern&gt;url-pages-you-want-protect&lt;/url-pattern&gt; &lt;http-method&gt;GET&lt;/http-method&gt; &lt;http-method&gt;POST&lt;/http-method&gt; &lt;/web-resource-collection&gt; &lt;auth-constraint&gt; &lt;role-name&gt;your-user-role&lt;/role-name&gt; &lt;/auth-constraint&gt; &lt;user-data-constraint&gt; &lt;transport-guarantee&gt;NONE&lt;/transport-guarantee&gt; &lt;/user-data-constraint&gt; &lt;/security-constraint&gt; &lt;!-- Validation By Form --&gt; &lt;login-config&gt; &lt;auth-method&gt;FORM&lt;/auth-method&gt; &lt;form-login-config&gt; &lt;form-login-page&gt;your-login-page&lt;/form-login-page&gt; &lt;form-error-page&gt;your-error-page&lt;/form-error-page&gt; &lt;/form-login-config&gt; &lt;/login-config&gt; &lt;!-- Allowed Roles --&gt; &lt;security-role&gt; &lt;role-name&gt;your-user-role&lt;/role-name&gt; &lt;/security-role&gt; &lt;/web-app&gt; </code></pre> <p>to test the connection use this:</p> <pre><code>public class LoginModulesTestCase extends TestCase { static { try { Configuration.setConfiguration(new TestConfig()); System.out.println("Installed TestConfig as JAAS Configuration"); } catch(Exception e) { e.printStackTrace(); } } /** Hard coded login configurations for the test cases. The configuration name corresponds to the unit test function that uses the configuration. */ static class TestConfig extends Configuration { public void refresh() { } public AppConfigurationEntry[] getAppConfigurationEntry(String name) { AppConfigurationEntry[] entry = null; try { Class[] parameterTypes = {}; Method m = getClass().getDeclaredMethod(name, parameterTypes); Object[] args = {}; entry = (AppConfigurationEntry[]) m.invoke(this, args); } catch(Exception e) { } return entry; } AppConfigurationEntry[] testLdapExample1() { String name = "org.jboss.security.auth.spi.LdapLoginModule"; HashMap options = new HashMap(); options.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory"); options.put("java.naming.provider.url", "ldap://host-ldap-server:port-ldap-server/"); options.put("java.naming.security.authentication", "simple"); options.put("principalDNPrefix", "uid="); options.put("principalDNSuffix", ",ou=users,o=your-organization-name"); options.put("rolesCtxDN", "ou=groups,o=your-organization-name"); options.put("uidAttributeID", "member"); options.put("matchOnUserDN", "true"); options.put("roleAttributeID", "cn"); options.put("roleAttributeIsDN", "false"); AppConfigurationEntry ace = new AppConfigurationEntry(name, AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, options); AppConfigurationEntry[] entry = {ace}; return entry; } } public LoginModulesTestCase(String testName) { super(testName); } @Test public void testLdapExample1() throws Exception { System.out.println("testLdapExample1"); UsernamePasswordHandler handler = new UsernamePasswordHandler("your-uid", "your-uid-password".toCharArray()); LoginContext lc = new LoginContext("testLdapExample1", handler); lc.login(); Subject subject = lc.getSubject(); System.out.println("Subject: "+subject); Set groups = subject.getPrincipals(Group.class); assertTrue("Principals contains your-uid", subject.getPrincipals().contains(new SimplePrincipal("your-uid"))); Group roles = (Group) groups.iterator().next(); assertTrue("your-uid-role is a role", roles.isMember(new SimplePrincipal("your-uid-role"))); lc.logout(); } } </code></pre> <p>hey I have to ask you something:</p> <ul> <li>is your ldap host = domain.com?</li> <li>and your ldap port = 389?</li> <li>where is your ldap server installed?</li> <li>is your organization's ldap partition ou=people,dc=domain,dc=com?</li> <li>don't use suid, use uid like the example I had shown you, the uid is unique</li> <li>is your uid located on ou=people,dc=domain,dc=com?</li> <li>is this code an example copy?</li> <li>I'm using Apache Directory server as lpad server on my own machine, who is your server?</li> <li>where your server located?</li> </ul> <p>if you want I can help you to configure Apache Directory Server, you only have to ask a stackoverflow question and add the jboss 7.x and ldap stackoverflow tags</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload