Spring Cloud Spring Boot mybatis分佈式微服務雲架構(三十)LDAP來管理用戶信息(2)

  • 使用spring-data-ldap的基礎用法,定義LDAP中屬性與咱們Java中定義實體的關係映射以及對應的Repository
    @Data
    @Entry(base = "ou=people,dc=didispace,dc=com", objectClasses = "inetOrgPerson")
    public class Person {
    
        @Id
        private Name id;
        @DnAttribute(value = "uid", index = 3)
        private String uid;
        @Attribute(name = "cn")
        private String commonName;
        @Attribute(name = "sn")
        private String suerName;
        private String userPassword;
    
    }
    
    public interface PersonRepository extends CrudRepository<Person, Name> {
    
    }

    經過上面的定義以後,已經將Person對象與LDAP存儲內容實現了映射,咱們只須要使用PersonRepository就能夠輕鬆的對LDAP內容實現讀寫。html

  • 建立單元測試用例讀取全部用戶信息:
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class ApplicationTests {
    
    	@Autowired
    	private PersonRepository personRepository;
    
    	@Test
    	public void findAll() throws Exception {
    		personRepository.findAll().forEach(p -> {
    			System.out.println(p);
    		});
    	}
    }

    啓動該測試用例以後,咱們能夠看到控制檯中輸出了剛纔維護在ldap-server.ldif中的用戶信息:spring

    2018-01-27 14:25:06.283  WARN 73630 --- [           main] o.s.ldap.odm.core.impl.ObjectMetaData    : The Entry class Person should be declared final
    Person(id=uid=ben,ou=people,dc=didispace,dc=com, uid=ben, commonName=didi, suerName=zhaiyongchao, userPassword=123,83,72,65,125,110,70,67,101,98,87,106,120,102,97,76,98,72,72,71,49,81,107,53,85,85,52,116,114,98,118,81,61)

    添加用戶

    經過上面的入門示例,若是您可以獨立完成,那麼在Spring Boot中操做LDAP的基礎目標已經完成了。服務器

    若是您足夠了解Spring Data,其實不難想到,這個在其下的子項目必然也遵照Repsitory的抽象。因此,咱們能夠使用上面定義的PersonRepository來輕鬆實現操做,好比下面的代碼就能夠方便的往LDAP中添加用戶:單元測試

    Person person = new Person();
    person.setUid("uid:1");
    person.setSuerName("AAA");
    person.setCommonName("aaa");
    person.setUserPassword("123456");
    personRepository.save(person);

    若是還想實現更多操做,您能夠參考spring-data-ldap的文檔來進行使用。測試

    鏈接LDAP服務端

    在本文的例子中都採用了嵌入式的LDAP服務器,事實上這種方式也僅限於咱們本地測試開發使用,真實環境下LDAP服務端必然是獨立部署的。ui

    在Spring Boot的封裝下,咱們只須要配置下面這些參數就能將上面的例子鏈接到遠端的LDAP而不是嵌入式的LDAP。url

    spring.ldap.urls=ldap://localhost:1235
    spring.ldap.base=dc=didispace,dc=com
    spring.ldap.username=didispace
    spring.ldap.password=123456

    源碼來源spa

相關文章
相關標籤/搜索