public class PersonDaoImpl implements PersonDao {
private LdapTemplate ldapTemplate;
public static void main(String[] args) {
ApplicationContext cxt = new ClassPathXmlApplicationContext(
"applicationContext.xml");
PersonDaoImpl personDao = (PersonDaoImpl) cxt.getBean("personDao");
// List users = personDao.getAllPersonNames();
// System.out.println(users.size());
String userName = "10010a";
String passWord = "2039729";
String userDn = personDao.getDnForUser(userName);
System.out.println("userDn:" + userDn);
boolean bl=personDao.authenticate(userDn, passWord);
System.out.println("验证结果:" + bl);
}
/**
* 根据CN属性取得用户DN(当然你可以根据自己情况换成别的属性来操作)
* @param cn
* @return
*/
private String getDnForUser(String cn) {
EqualsFilter f = new EqualsFilter("cn", cn);
List result = ldapTemplate.search(DistinguishedName.EMPTY_PATH, f
.toString(), new AbstractContextMapper() {
protected Object doMapFromContext(DirContextOperations ctx) {
return ctx.getNameInNamespace();
}
});
if (result.size() != 1) {
throw new RuntimeException("User not found or not unique");
}
return (String) result.get(0);
}
/**
* 根据用户名密码验证
* @param userDn
* @param credentials
* @return
*/
public boolean authenticate(String userDn, String credentials) {
DirContext ctx = null;
try {
ctx = ldapTemplate.getContextSource().getContext(userDn,
credentials);
return true;
} catch (Exception e) {
// Contextcreationfailed-authenticationdidnotsucceed
return false;
} finally {
// ItisimperativethatthecreatedDirContextinstanceisalwaysclosed
LdapUtils.closeContext(ctx);
}
}
分享到:
相关推荐
Spring框架与LDAP(轻量级目录访问协议)的结合使用,可以实现高效的单点登录(Single Sign-On,简称SSO)系统。SSO允许用户在多个应用系统中只需要登录一次,即可访问所有相互信任的应用系统,提高了用户体验并简化...
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码 本篇文章主要介绍了使用Vue、Jwt、SpringBoot和Ldap完成登录认证的示例代码,旨在帮助读者了解如何使用这些技术来实现安全的登录认证机制。 首先,让我们了解一下...
- **`AuthenticationManagerBuilder`**:用于构建认证管理器,它可以通过多种方式配置用户信息来源,如内存、数据库或LDAP等。 - **`userDetailsService(securityUserService())`**:这里指定了一个实现了`...
自定义登陆页面是Spring Security提供的另一个灵活性功能,允许开发者创建个性化的登陆界面以提升用户体验。通过配置过滤器和参数,可以实现对登陆页面的定制化,同时也可以结合自定义登陆页面来动态管理资源。 ...
- **** 或 **<ldap-user-service>**:定义用户服务,提供用户信息。 3. **多用户登录实现** - **用户实体(UserDetails)**:Spring Security中的UserDetails接口表示用户信息,包括用户名、密码、权限等。你需要...
LDAP - spring-security-ldap.jar 1.4.1.5. ACL - spring-security-acl.jar 1.4.1.6. CAS - spring-security-cas-client.jar 1.4.1.7. OpenID - spring-security-openid.jar 1.4.2. 获得源代码 2. Security...
- **配置LDAP:** 设置Spring Security从LDAP服务器获取用户信息。 - **第22章:通过OpenID进行登录** - **配置:** 设置Spring Security支持OpenID认证。 - **系统时间问题:** 解决OpenID认证过程中可能遇到...
- **LDAP - spring-security-ldap.jar**: 提供了与 LDAP 服务器交互的功能。 - **ACL - spring-security-acl.jar**: 用于实现更细粒度的访问控制。 - **CAS - spring-security-cas-client.jar**: 支持 CAS 单点...
### Spring Security3技术手册知识点概览 #### 一、基础篇 **1. 一个简单的Hello World** - **1.1 配置过滤器** - Spring Security通过一系列的过滤器来实现对Web应用程序的安全控制。了解如何配置这些过滤器是...
- **配置 LDAP**: 配置 Spring Security 与 LDAP 服务器集成。 - **实现用户信息查询**: 通过 LDAP 查询用户信息。 #### 五、总结 通过上述章节的学习,我们可以看到 Spring Security 提供了极其丰富的功能,不仅...
- 支持多种认证方式,如数据库认证、LDAP认证等。 - 支持多种加密格式,如MD5、SHA等。 - 支持组件的扩展和替换。 - 可以本地化输出信息,便于国际化。 - **授权特点**: - 支持多种仲裁方式,如基于角色的...
- `cas-server-integration-*`:这些模块实现了与其他系统的集成,例如LDAP、JDBC、MongoDB等。 6. **开发与部署**: - 使用Maven或Gradle构建系统来编译源码。 - 配置`application.properties`或`application....
8. **扩展性**: 这个示例项目展示了如何将这些技术整合到一个SSO解决方案中,但实际部署可能需要根据具体需求进行调整,例如添加更多的认证方式(如LDAP或社交登录),或者集成其他服务和API。 总之,"sso-oauth2-...
集成LDAP登陆,支持同步LDAP组/用户 支持http RESTful api获取配置 以secret key防止非法获取配置 丰富的metrics, connection统计 使用技术 netty mybatis spring mvc shiro ehcache dropwizard metrics crash shell...
CAS 可以提供统一的身份验证服务,支持多种身份验证协议,如 LDAP、Kerberos 和 X.509。CAS 通过 Ticket 机制来实现单点登录,用户首先访问 CAS 服务器,CAS 服务器对用户进行身份验证,然后颁发 Ticket,用户可以...
- 客户端集成:学习如何在Spring、Spring Boot等框架下集成CAS客户端库。 5. **CAS安全性与最佳实践**: - 安全配置:设置SSL/TLS以保护通信,防止中间人攻击。 - 审计日志:理解和配置CAS的日志系统,以便跟踪...
- **用到的jar包**:包括CAS服务器和客户端运行所需的Java库,如cas-client-core、spring-web等。 - **CAS深入研究**:除了基本的配置,还可以深入研究CAS的扩展功能,如票证管理、代理认证、多因素认证等。 **4. ...
这可能涉及修改web.xml文件或使用特定的库和框架(如Spring Security CAS)。 6. 测试SSO功能:完成以上步骤后,可以测试SSO功能是否正常工作。首次访问受保护的资源,应被重定向到CAS Server进行登录,登录成功后...
* 单点登陆服务及 LDAP 认证:JOSSO * 自定义脚本支持:Mozilla Rhino Javascript 脚本处理器 三、OpenReports OpenReports 是一个基于 Web 的报表解决方案, 可为用户提供通过浏览器查看动态创建的 PDF 、HTML 或...
对于Java开发者来说,这是一个常见的需求,尤其是在创建Web应用或移动应用时。...压缩包中的"简单的登陆注册"可能是实现了这些功能的源代码,通过分析和学习,开发者可以加深对这部分知识的理解和运用。