{"action":"created","issue":{"url":"https://api.github.com/repos/vt-middleware/ldaptive/issues/28","labels_url":"https://api.github.com/repos/vt-middleware/ldaptive/issues/28/labels{/name}","comments_url":"https://api.github.com/repos/vt-middleware/ldaptive/issues/28/comments","events_url":"https://api.github.com/repos/vt-middleware/ldaptive/issues/28/events","html_url":"https://github.com/vt-middleware/ldaptive/issues/28","id":60199461,"number":28,"title":"Sping namespaces to handle bean config","user":{"login":"mmoayyed","id":1205228,"avatar_url":"https://avatars.githubusercontent.com/u/1205228?v=3","gravatar_id":"","url":"https://api.github.com/users/mmoayyed","html_url":"https://github.com/mmoayyed","followers_url":"https://api.github.com/users/mmoayyed/followers","following_url":"https://api.github.com/users/mmoayyed/following{/other_user}","gists_url":"https://api.github.com/users/mmoayyed/gists{/gist_id}","starred_url":"https://api.github.com/users/mmoayyed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmoayyed/subscriptions","organizations_url":"https://api.github.com/users/mmoayyed/orgs","repos_url":"https://api.github.com/users/mmoayyed/repos","events_url":"https://api.github.com/users/mmoayyed/events{/privacy}","received_events_url":"https://api.github.com/users/mmoayyed/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":42,"created_at":"2015-03-07T09:39:00Z","updated_at":"2015-08-13T13:11:43Z","closed_at":null,"body":"In order to simplify the bean configuration, I think it'd be best if ldaptive started to define its own DSL. With a custom schema and perhaps via Spring namespace handlers, all the extra baggage that deals with bean declarations and setting props here and there can be perfectly replaced with syntactic sugar to help adopters and devs better understand what's going on under the hood.\r\n\r\nRef: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/extensible-xml.html\r\n\r\nAs an example:\r\n\r\n```java\r\n<bean id=\"authenticator\" class=\"org.ldaptive.auth.Authenticator\"\r\n      c:resolver-ref=\"dnResolver\"\r\n      c:handler-ref=\"authHandler\"\r\n      p:entryResolver-ref=\"entryResolver\">\r\n      <property name=\"authenticationResponseHandlers\">\r\n          <list>\r\n              <bean class=\"org.ldaptive.auth.ext.ActiveDirectoryAuthenticationResponseHandler\" />\r\n          </list>\r\n      </property>\r\n</bean>\r\n\r\n<!-- Active Directory UPN format. -->\r\n<bean id=\"dnResolver\"\r\n      class=\"org.ldaptive.auth.FormatDnResolver\"\r\n      c:format=\"%s@${ldap.domain}\" />\r\n```\r\n\r\nTurns into:\r\n\r\n```\r\n<ldaptive:authenticator dnResolver=\"dnResolver\" authHandler=\"xyz\" entryResolvers=\"list\" />\r\n<ldaptive:dnResolver id=\"dnResolver\" format-dn=\"%s@${ldap.domain}\" />\r\n```\r\n\r\n...and so on and so forth. \r\n\r\nEssentially, all the code samples that are defined here would be candidates for the custom schema, and whatever else that exists:\r\nhttp://jasig.github.io/cas/development/installation/LDAP-Authentication.html#active-directory-authentication"},"comment":{"url":"https://api.github.com/repos/vt-middleware/ldaptive/issues/comments/130664171","html_url":"https://github.com/vt-middleware/ldaptive/issues/28#issuecomment-130664171","issue_url":"https://api.github.com/repos/vt-middleware/ldaptive/issues/28","id":130664171,"user":{"login":"dfish3r","id":1051499,"avatar_url":"https://avatars.githubusercontent.com/u/1051499?v=3","gravatar_id":"","url":"https://api.github.com/users/dfish3r","html_url":"https://github.com/dfish3r","followers_url":"https://api.github.com/users/dfish3r/followers","following_url":"https://api.github.com/users/dfish3r/following{/other_user}","gists_url":"https://api.github.com/users/dfish3r/gists{/gist_id}","starred_url":"https://api.github.com/users/dfish3r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dfish3r/subscriptions","organizations_url":"https://api.github.com/users/dfish3r/orgs","repos_url":"https://api.github.com/users/dfish3r/repos","events_url":"https://api.github.com/users/dfish3r/events{/privacy}","received_events_url":"https://api.github.com/users/dfish3r/received_events","type":"User","site_admin":false},"created_at":"2015-08-13T13:11:43Z","updated_at":"2015-08-13T13:11:43Z","body":"Changed the boolean types to strings: https://github.com/vt-middleware/ldaptive/commit/6e245088c993209019486a89388ba5106ac8dbd6"}}