当前位置:首页 » 净水方式 » ldap过滤器

ldap过滤器

发布时间: 2021-03-11 13:23:21

① LDAP在JAVA中如何模糊查询

/**
* 获得LDAP连接(不通过连接池,直接获得连接)
* @return
* @throws Exception
*/
private javax.naming.directory.DirContext getDirContext() throws Exception
{
DirContext ctx = null;
java.util.Hashtable env = new java.util.Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, user);
env.put(Context.SECURITY_CREDENTIALS, pwd);
ctx = new InitialDirContext(env);
return ctx;
}

/**
* 返回用户查询接口
* @param DN 查找范围 ou=test,dc=abcd,dc=com
* @param filter 过滤条件 cn=*
* @param myserach 搜索范围
* @return LDAP标准接口
* @throws Exception
*/
public javax.naming.NamingEnumeration getFilter(String DN,String filter,int myserach) throws Exception
{
DirContext ctx = getDirContext();
try
{
NamingEnumeration em;
SearchControls con = new SearchControls();
con.setSearchScope(myserach);
em = ctx.search(DN, filter, con);
return em;
}
finally
{
//
}
}
/**
* 设置条件查找
* @param dn 查找的根结点
* @param filter 查找条件
* @param level 查找范围
* @return 返回一个由DN组成的JAVA STRING 列表
* @throws Exception
*/
public java.util.Vector getfilterNodes(String dn,String filter,int level) throws Exception
{
java.util.Vector ve=new java.util.Vector();
NamingEnumeration em=getFilter(dn,filter,level);
while(em!=null && em.hasMoreElements())
{
SearchResult rs=(SearchResult)em.nextElement();
String db=rs.getName();
if (db.trim().equals(""))
ve.add(dn);
else
ve.add(db+","+dn);
}
return ve;
}

② 如何在MAVEN中配置Spring的依赖包

1.1 spring-security-core

Spring Security的核心功能是由spring-security-core包提供的,包含了认证和访问控制功能、支持standalone应用程序、方法级安全和JDBC支持。

<properties>
<org.springframework.security.version>3.2.3.RELEASE</org.springframework.security.version>
<org.springframework.version>4.0.4.RELEASE</org.springframework.version>
</properties>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
注意:我们使用的是3.2.x版本的Spring Security--Spring和Spring Security有着不同的版本计划,所以他们的版本号之间没有一对一关系。

如果项目使用的是较老版本的Spring,需要注意的时Spring Security 3.1.x版本不依赖于Spring 3.1.x版本,因为Spring Security 3.1.x版本在Spring 3.1之前发布。Spring的计划是在后续的版本中,使双方的版本号更为接近,更多细节请查看这个JIRA。我们将在后面的内容中看看这种情况对我们的实际影响。

1.2 spring-security-web

要为Spring Security增加Web支持,需要引入spring-security-web依赖:

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
这个项目为Servlet环境引入了针对URL访问控制的相关基础安全组件和过滤器。

1.3 Spring Security与较老版本的Spring Core之间的依赖问题

如上文所述,这个新的依赖产生一个Maven依赖关系问题,Spring Security的相关jar不依赖于最新的Spring core的jar (而是以前的版本)。这可能使的被依赖的Spring core相关包在类路径中被配置前在最新的Spring 4.x相关包的前面。

这是如何发生的呢?我们需要了解Maven处理版本冲突的机制,Maven会选择与依赖树树根最接近的版本。在之前的情况中,spring-orm依赖4.x版本的spring-core,而spring-security-core依赖于3.2.8版本的spring-core。因此,spring-orm和sprint-security-web的定义顺序就是一个问题,先定义的会有更高的优先级。最终情况就是,我们的类路径中会有两个版本的spring-core。

为了避免这类问题,我们需要在我们的pom文件中明确指定一些Spring依赖,而不依靠Maven隐式依赖机制。我们将在pom的根文件中定义特定的依赖关系,这样这些依赖关系将会有更高的优先级。下面例子中,将对所有的Spring核心组件明确定义相同的版本,对于多模块项目,需要在父配置文件的dependencyManagement属性中定义。

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
1.4 spring-security-config及其他

要使用丰富的Spring Security XML的命名空间,需要定义spring-security-config依赖:

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${org.springframework.security.version}</version>
<scope>runtime</scope>
</dependency>
没有任何代码需要在编译时依赖这个包,所以它的范围应该定义为runtime。

最后,LDAP、ACL、CAS和OpenID支持需要分别增加各自的依赖包:spring-security-ldap, spring-security-acl, spring-security-cas和spring-security-openid。

③ 我想从LDAP中获取所有的用户信息,用ldapTemplate中的search方法 ,请问应该怎么写,过滤器 filter怎么写

如果你的用户属性里有uid
这可以这样写 (uid=*)
如果没有,可以写任何一个有的属性,然后属性值=*

④ 如何配置web-inf/security/ldapbindsecurityrealm.groovy

1.需要的包(除了spring Security的包)
spring-ldap-1.2.1.jar(1.2.1+)
ldapbp.jar
commons-lang-2.4.jar
注:spring-ldap不能用1.2版本,1.2中AbstractContextSource.createContext是包级私有的,spring security的继承了AbstractContextSource并需要访问该方法。在1.2.1版本中,这个方法是受保护的。
2.配置文件:
(1)服务器配置
外部ldap服务器,指明服务的地址,用户名和密码
<ldap-server url="ldap://localhost:389/dc=springframework,dc=org"
manager-dn = "cn=root" manager-password = "111111"/>
内部嵌入式ldap服务器(依赖于apache ds的包),指定根和要导入的ldif文件的路径
<ldap-server root="dc=springframework,dc=org" ldif="classpath:users.ldif" />
(2)认证提供者配置
<ldap-authentication-provider user-search-filter="(uid={0})" user-search-base="ou=people" group-search-filter = "(member={0})" group-search-base="ou=groups"/>
(3)UserDetailService配置(只有启用了remember-me过滤器,才需要配置user-service)
<ldap-user-service user-search-filter="(uid={0})" user-search-base="ou=people"/>
3.认证和授权信息的指定(都存放在ldap中)
(1)认证信息:
用户名(从匹配模式中获取)
user-dn-pattern:用户dn的模式
user-search-filter:用户名的模式
user-search-base:用户查找的base
用户口令
如果使用bind认证,不需要知道LDAP中的口令属性名称。如果使用密码比较的认证方式,需要指定用户口令对应的属性名,缺省的属性名是userPassword。
(2)授权信息:
group-role-attribute:用户权限的属性名称(默认是cn)
group-search-filter:用户权限的模式
group-search-base:权限超找的base
role-prefix:权限前缀,默认是"ROLE_",如果不需要可以设置成"none"。

4.一个配置文件的示例
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/securityhttp://www.springframework.org/schema/security/spring-security-2.0.1.xsd">
<http auto-config="true">
<intercept-url pattern="/secure.html" access="ROLE_USER" />
<intercept-url pattern="/extremesecure.html" access="ROLE_ADMIN" />
</http>
<!--
Usernames/Passwords are
rod/koala
dianne/emu
scott/wombat
-->

<ldap-server url="ldap://localhost:389/dc=springframework,dc=org"/>
<ldap-authentication-provider user-search-filter="(uid={0})" user-search-base="ou=people"
group-search-filter = "(member={0})" group-search-base="ou=groups"/>
<!-- remember-me需要使用,如果没有开启remeber-me Filter,可以不配置user-service -->
<ldap-user-service user-search-filter="(uid={0})" user-search-base="ou=people"
group-search-filter = "(member={0})" group-search-base="ou=groups"/>
</beans:beans>


0

⑤ java框架有哪些常用框架

十大常用框架:

一、SpringMVC

二、Spring

三、Mybatis

四、Dubbo

五、Maven

六、RabbitMQ

七、Log4j

八、Ehcache

九、Redis

十、Shiro

⑥ 急急急~大神帮忙,查不出来数据了!ldap如何查处某个字段为空的数据,过滤器要怎么写

(!test=*)

⑦ 什么是LDAP服务器

LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。而目录服务的更新则一般都非常简单。这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。为了访问存储在目录中的信息,就需要使用运行在TCP/IP 之上的访问协议—LDAP。

LDAP目录中的信息是是按照树型结构组织,具体信息存储在条目(entry)的数据结构中。条目相当于关系数据库中表的记录;条目是具有区别名DN (Distinguished Name)的属性(Attribute),DN是用来引用条目的,DN相当于关系数据库表中的关键字(Primary Key)。属性由类型(Type)和一个或多个值(Values)组成,相当于关系数据库中的字段(Field)由字段名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。类型的一个例子就是mail,其值将是一个电子邮件地址。

LDAP的信息是以树型结构存储的,在树根一般定义国家(c=CN)或域名(dc=com),在其下则往往定义一个或多个组织 (organization)(o=Acme)或组织单元(organizational units) (ou=People)。一个组织单元可能包含诸如所有雇员、大楼内的所有打印机等信息。此外,LDAP支持对条目能够和必须支持哪些属性进行控制,这是有一个特殊的称为对象类别(objectClass)的属性来实现的。该属性的值决定了该条目必须遵循的一些规则,其规定了该条目能够及至少应该包含哪些属性。例如:inetorgPerson对象类需要支持sn(surname)和cn(common name)属性,但也可以包含可选的如邮件,电话号码等属性。

⑧ apache的主要模块包含哪些内容

mod_access
根据客户端的主机名,IP地址,或其他特性的客户端请求提供访问控制。
mod_actions
该模块提供了根据媒体类型或请求方法执行CGI脚本。
用到mod_alias模组
提供文档树中的主机文件系统的不同部分映射和URL重定向
mod_asis
发送文件,其中包含他们自己的HTTP标头
mod_auth
使用文本文件的用户身份验证
mod_auth_anon
允许“匿名”用户访问身份验证领域
mod_auth_dbm
提供用户认证使用DBM文件
mod_auth_digest
用户认证使用MD5摘要式身份验证。
mod_auth_ldap
允许使用LDAP目录来存放数据库的HTTP基本身份验证。
mod_autoindex
生成目录索引,自动,类似的Unix LS命令或Win32 目录的shell命令
mod_cache
内容缓存键的URI。
mod_cern_meta
CERN httpd的图元文件的语义
mod_cgi的
CGI脚本的执行
mod_cgid
使用一个外部CGI守护进程执行CGI脚本
mod_charset_lite
指定字符集转换或重新编码
mod_dav
分布式创作和版本控制(WebDAV的)功能
mod_dav_fs
为mod_dav的文件系统提供者
mod_deflate模块
压缩的内容,然后传送到客户端
mod_dir
提供“结尾的斜线”重定向和服务目录索引文件
mod_disk_cache
内容缓存存储管理器键入的URI
mod_mpio
转储所有的I / O错误日志中。
mod_echo
一个简单的echo服务器来说明协议模块
mod_env
修改传递给CGI脚本和SSI页面的环境,
mod_example
说明在Apache模块API
mod_expires
生成到期的Cache-Control HTTP报头,根据用户指定的标准
mod_ext_filter
通过外部程序发送给客户端之前,通过响应体
mod_file_cache实现
在内存中缓存静态文件列表
mod_headers
定制的HTTP请求和响应头
mod_imap
服务器端图像映射处理
mod_include
服务器解析的HTML文件(服务器端包含)
mod_info
服务器的配置提供了一个全面的概述
mod_isapi
在Apache的ISAPI扩展为Windows
mod_ldap模块
LDAP连接池和结果缓存服务使用的其他LDAP模块
mod_log_config
记录向服务器发出的请求
mod_log_forensic
法医记录的请求到服务器
mod_logio
记录每个请求的输入和输出字节
mod_mem_cache
内容缓存键的URI
mod_mime
联营公司所要求的文件名的扩展名与文件的行为(处理程序和过滤器)和内容(MIME类型,语言,字符集和编码)
mod_mime_magic
通过在几个字节,其内容来确定一个文件的MIME类型
mod_negotiation模块
提供内容协商
mod_nw_ssl
对于NetWare启用SSL加密
mod_proxy
HTTP/1.1代理/网关服务器
mod_proxy_connect
mod_proxy的扩展名 CONNECT请求处理
mod_proxy_ftp
FTP支持模块 的mod_proxy
mod_proxy_http
HTTP支持模块 的mod_proxy
mod_rewrite
提供了一个基于规则的重写引擎重写请求的URL飞
mod_setenvif
基于请求的特性,允许设置的环境变量
则mod_so
服务器在启动时加载的可执行代码和模块或重新启动时间
mod_speling
尝试纠正错误的URL,用户可能忽略了资本输入,并允许一个拼写错误
mod_ssl的
强效加密使用安全套接字层(SSL)和传输层安全协议(TLS)
使用mod_status
提供有关服务器活动和性能
mod_suexec
允许CGI脚本来运行指定的用户和组
mod_unique_id
每个请求的唯一标识符提供了一个环境变量
mod_userdir模块
用户特定的目录
mod_usertrack
点击流记录在网站上的用户活动
mod_version
版本相关的配置
mod_vhost_alias
提供质量的虚拟主机动态配置

⑨ 关于讲web方面的好书推荐

介绍几本比较经典的。

第一本:《java从入门到精通》(第3版)

【内容介绍】《JAVA核心技术卷2:高级特征》是Java技术权威指南,全面覆盖Java技术的高级主题,包括流与文件、XML、网络、数据库编程、高级Swing、高级 AWT、JavaBean构件、安全、分布式对象、脚本、编译与注解处理等,同时涉及本地化、国际化以及Java SE 6的内容。《JAVA核心技术卷Ⅱ:高级特征》对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。

【推荐理由】本书是经典的《Java核心技术,卷II:高级特性》的最新修订版,涵盖了Java SE6平台的高级用户界面程序设计和企业特性。与第1卷(涵盖了核心的语言和类库特性)一样,本卷已经更新到了JavaSE6。并且对新内容都作了重点标注。书中所有的示例程序都进行了详细的设计,用来演示最新的编程技术。并展示针对专业开发者在现实中所碰到的典型问题的最佳解决方案。本书包含有关StAXAPI、JDBC 4、编译器API、脚本框架、闪屏和托盘API以及其他许多JavaSE6改进特性的新章节。本书聚焦于Java语言中更高级的特性,包括下列内容:流与文件、网络、数据库编程、XML、JNDI与LDAP、国际化、高级GUI组件、Java2D、JavaBeans、安全、RMI与Web服务、高级AWT、注解、本地方法。

供参考。

⑩ 如何更改OpenLDAP服务器上的账户密码

windows系统服务器:右键计算机-管理-本地用户和组-用户-右键重命名修改用户名,右键设置密码可以进行更改密码。
Linux系统:若修改root自己的密码,直接输入passwd,输入两遍新密码即可。 修改其他用户,如oracle 的密码,可直接输入passwd oracle.,输入两遍性新密码即可。

热点内容
丁度巴拉斯情人电影推荐 发布:2024-08-19 09:13:07 浏览:886
类似深水的露点电影 发布:2024-08-19 09:10:12 浏览:80
《消失的眼角膜》2电影 发布:2024-08-19 08:34:43 浏览:878
私人影院什么电影好看 发布:2024-08-19 08:33:32 浏览:593
干 B 发布:2024-08-19 08:30:21 浏览:910
夜晚看片网站 发布:2024-08-19 08:20:59 浏览:440
台湾男同电影《越界》 发布:2024-08-19 08:04:35 浏览:290
看电影选座位追女孩 发布:2024-08-19 07:54:42 浏览:975
日本a级爱情 发布:2024-08-19 07:30:38 浏览:832
生活中的玛丽类似电影 发布:2024-08-19 07:26:46 浏览:239