您的位置:首页 > 编程语言 > Java开发

【总结】基于Spring LDAP和Spring Security的用户认证和权限控制Web实现

2017-04-26 16:45 2116 查看
利用LDAP服务,使用Spring LDAP,Spring Security实现Web项目用户认证和简单的权限控制。实现多系统账号统一。
1、基于EHR的LDAP用户信息
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。LDAP目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌LDAP目录树这个概念了。就象DNS的主机名那样,LDAP目录记录的标识名(Distinguished Name,简称DN)是用来读取单个记录,以及回溯到树的顶部
例如,DN: cn=ZH201506006,ou=大数据平台研发工程师,ou=大数据平台部,ou=技术中心,ou=职能,dc=openldap,dc=jw,dc=cn
LDAP中组织结构以及用户数据是从EHR系统中同步而来,
其中Group,记录各个角色下的用户成员
组织结构:




Group信息,AUTHORITY_SYSTEM_ADMIN下有一个member是cn=ZH201506006,ou=大数据平台研发工程师,ou=大数据平台部,ou=技术中心,ou=职能,dc=openldap,dc=jw,dc=cn




用户信息:




2、实现基于LDAP用户认证

Web项目中实现基于LDAP认证,主要完成以下工作
spring-security.xml,基于spring security的配置文件

ldap.properties ,配置文件spring-security.xml中引用的常量

MyAuthenticationProvider.java 自定义的用户认证类

AuthoritiesPopulator.java 自定义权限组

代码以及注释参考:https://github.com/chocolateBlack/authority-spring-security

3、实现基于Spring Sentry权限控制

Web项目中实现基于Spring Sentry权限控制,主要完成以下工作
在spring-security.xml配置
<global-method-security secured-annotations="enabled" pre-post-annotations="enabled" jsr250-annotations="enabled" />
说明参考:https://vincentmi.gitbooks.io/spring-security-reference-zh/content/4.4_method_security.html

在spring-security.xml中配置

<http security="none" pattern="/login.jsp" />
<http auto-config="true">
<intercept-url pattern="/check" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/admin" access="ROLE_AUTHORITY_SYSTEM_ADMIN"/>
</http>
说明参考:https://vincentmi.gitbooks.io/spring-security-reference-zh/content/4.2_getting_started%20with_security_namespace_configuration.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web spring ldap