{"id":1654,"date":"2016-10-05T16:14:15","date_gmt":"2016-10-05T14:14:15","guid":{"rendered":"http:\/\/blog.rabahi.net\/?page_id=1654"},"modified":"2016-10-05T16:15:50","modified_gmt":"2016-10-05T14:15:50","slug":"java-spring-security-ldap","status":"publish","type":"page","link":"https:\/\/blog.rabahi.net\/?page_id=1654","title":{"rendered":"Java Spring Security &#8211; LDAP"},"content":{"rendered":"<div id=\"toc_container\" class=\"no_bullets\"><p class=\"toc_title\">Contents<\/p><ul class=\"toc_list\"><li><a href=\"#Prerequistes\"><span class=\"toc_number toc_depth_1\">1<\/span> Prerequistes<\/a><\/li><li><a href=\"#Configuration\"><span class=\"toc_number toc_depth_1\">2<\/span> Configuration<\/a><ul><li><a href=\"#SecurityConfigurationjava\"><span class=\"toc_number toc_depth_2\">2.1<\/span> SecurityConfiguration.java<\/a><\/li><li><a href=\"#usersldif\"><span class=\"toc_number toc_depth_2\">2.2<\/span> users.ldif<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h1><span id=\"Prerequistes\">Prerequistes<\/span><\/h1>\n<p>Please read <a href=\"?page_id=1644\">Java Spring Security &#8211; Database User<\/a><\/p>\n<h1><span id=\"Configuration\">Configuration<\/span><\/h1>\n<h2><span id=\"SecurityConfigurationjava\">SecurityConfiguration.java<\/span><\/h2>\n<p>Override configure method from WebSecurityConfigurerAdapter :<\/p>\n<pre lang=\"java\">\r\n@Override\r\n    protected void configure(AuthenticationManagerBuilder auth) throws Exception {\r\n        auth.ldapAuthentication()\r\n        .userSearchBase(\"ou=people\")\r\n        .userSearchFilter(\"(uid={0})\")\r\n        .groupSearchBase(\"ou=groups\")\r\n        .groupSearchFilter(\"(member={0})\")\r\n        .contextSource().root(\"dc=MYDOMAIN,dc=LOCAL\")\r\n        .ldif(\"classpath:users.ldif\");\r\n    }\r\n<\/pre>\n<h2><span id=\"usersldif\">users.ldif<\/span><\/h2>\n<p>In src\/main\/resources, you can create users.ldif :<\/p>\n<pre lang=\"ldif\">\r\ndn: ou=groups,dc=MYDOMAIN,dc=LOCAL\r\nobjectclass: top\r\nobjectclass: organizationalUnit\r\nou: groups\r\n\r\ndn: ou=people,dc=MYDOMAIN,dc=LOCAL\r\nobjectclass: top\r\nobjectclass: organizationalUnit\r\nou: people\r\n\r\ndn: uid=user1,ou=people,dc=MYDOMAIN,dc=LOCAL\r\nobjectclass: top\r\nobjectclass: person\r\nobjectclass: organizationalPerson\r\nobjectclass: inetOrgPerson\r\ncn: User Number1\r\nsn: userSN1\r\nuid: user1\r\nuserPassword: user1Password\r\n\r\ndn: cn=admin,ou=groups,dc=MYDOMAIN,dc=LOCAL\r\nobjectclass: top\r\nobjectclass: groupOfNames\r\ncn: admin\r\nmember: uid=user1,ou=people,dc=MYDOMAIN,dc=LOCAL\r\n\r\ndn: cn=user,ou=groups,dc=MYDOMAIN,dc=LOCAL\r\nobjectclass: top\r\nobjectclass: groupOfNames\r\ncn: user\r\nmember: uid=user1,ou=people,dc=MYDOMAIN,dc=LOCAL\r\n<\/pre>\n<p>You will be able to connect using :<\/p>\n<ul>\n<li>login : user1<\/li>\n<li>password : user1Password<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Contents1 Prerequistes2 Configuration2.1 SecurityConfiguration.java2.2 users.ldif Prerequistes Please read Java Spring Security &#8211; Database User Configuration SecurityConfiguration.java Override configure method from WebSecurityConfigurerAdapter : @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.ldapAuthentication() .userSearchBase(&#8220;ou=people&#8221;) .userSearchFilter(&#8220;(uid={0})&#8221;) .groupSearchBase(&#8220;ou=groups&#8221;) .groupSearchFilter(&#8220;(member={0})&#8221;) .contextSource().root(&#8220;dc=MYDOMAIN,dc=LOCAL&#8221;) .ldif(&#8220;classpath:users.ldif&#8221;); } users.ldif In src\/main\/resources, you can create users.ldif : dn: ou=groups,dc=MYDOMAIN,dc=LOCAL objectclass: top objectclass: organizationalUnit ou: groups dn: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1642,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1654","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1654"}],"version-history":[{"count":2,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1654\/revisions"}],"predecessor-version":[{"id":1656,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1654\/revisions\/1656"}],"up":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/1642"}],"wp:attachment":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}