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

简介:

利用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,记录各个角色下的用户成员

组织结构:

wKiom1kAXWPxD3Y0AAA9OGVudbI099.png


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

wKiom1kAXYeCbzdYAAAyhcUtKqs607.png


用户信息:

wKioL1kAXZ7yK-yBAABE_gLR_rE173.png-wh_50


2、实现基于LDAP用户认证


Web项目中实现基于LDAP认证,主要完成以下工作

  1. spring-security.xml,基于spring security的配置文件

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

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

  4. AuthoritiesPopulator.java 自定义权限组

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


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


Web项目中实现基于Spring Sentry权限控制,主要完成以下工作

  1. 在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

  2. 在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





     本文转自巧克力黒 51CTO博客,原文链接:http://blog.51cto.com/10120275/1919698,如需转载请自行联系原作者



相关文章
|
1月前
|
存储 安全 Java
Spring Boot整合Spring Security--学习笔记
Spring Boot整合Spring Security--学习笔记
54 1
|
2月前
|
XML 安全 前端开发
SpringSecurity系列(四) Spring Security 实现权限树形菜单
SpringSecurity系列(四) Spring Security 实现权限树形菜单
|
2月前
|
安全 Java 数据库
【SpringSecurity】Spring Security 和Shiro对比
【SpringSecurity】Spring Security 和Shiro对比
98 0
|
2月前
|
安全 Java 数据库
【Spring Security】Spring Security 前后端分离认证
【Spring Security】Spring Security 前后端分离认证
65 0
|
7天前
|
存储 安全 Java
第3章 Spring Security 的用户认证机制(2024 最新版)(下)
第3章 Spring Security 的用户认证机制(2024 最新版)
32 0
|
8天前
|
JSON Java fastjson
Spring Boot 底层级探索系列 04 - Web 开发(2)
Spring Boot 底层级探索系列 04 - Web 开发(2)
16 0
|
24天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南
|
1月前
|
安全 Java 数据安全/隐私保护
【Spring底层原理高级进阶】【SpringCloud整合Spring Security OAuth2】深入了解 Spring Security OAuth2:底层解析+使用方法+实战
【Spring底层原理高级进阶】【SpringCloud整合Spring Security OAuth2】深入了解 Spring Security OAuth2:底层解析+使用方法+实战
|
2月前
|
JSON IDE Java
创建一个简单的Spring Boot Web项目
创建一个简单的Spring Boot Web项目
52 1
|
2月前
|
Java Maven 开发者
深入剖析Spring Boot在Java Web开发中的优势与应用
深入剖析Spring Boot在Java Web开发中的优势与应用