我将Apache Shiro与一个虚拟用户集成在一起,它工作的很好!但是这个框架没有在线教程?!作为初学者很难进入。Apache Shiro与LDAP相结合
有人可以帮助我整合ldap集成。我只找到信息,这并不难: -/
我开始与配置的境界:
[main]
myRealm = org.apache.shiro.realm.ldap.AbstractLdapRealm
但接下来做什么?如何配置它?
感谢的任何帮助
我将Apache Shiro与一个虚拟用户集成在一起,它工作的很好!但是这个框架没有在线教程?!作为初学者很难进入。Apache Shiro与LDAP相结合
有人可以帮助我整合ldap集成。我只找到信息,这并不难: -/
我开始与配置的境界:
[main]
myRealm = org.apache.shiro.realm.ldap.AbstractLdapRealm
但接下来做什么?如何配置它?
感谢的任何帮助
的AbstractLdapRealm是抽象的 - 你不能直接对其进行实例化或声明为你的境界。你将不得不继承这一个并实现必要的抽象方法。
在下一个Shiro版本中不需要这么做 - 目前有一个问题已经打开(https://issues.apache.org/jira/browse/SHIRO-127),因为具有可以直接使用的具体实现,所以95%的最终用户不会必须继承AbstractLdapRealm。
HTH,
莱斯
这可能帮助不大。检查包含简单和LDAP身份验证的整个教程。 http://www.ibm.com/developerworks/web/library/wa-apacheshiro/
谢谢我已经设法做到了。事实上,你的链接帮助了很多。如果有人需要帮助连接shiro到一些ldap在这里发表评论并链接你的问题,我会帮你们 – Sven 2010-11-19 09:23:24
我很高兴你做了:) – 2010-11-19 12:31:37
这里是工作示例。
active.ini
ldapRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm
ldapRealm.url = ldap://ldapserver:389
代码:
Factory<SecurityManager> ldapFactory = new IniSecurityManagerFactory("classpath:active.ini");
SecurityManager sManager = ldapFactory.getInstance();
SecurityUtils.setSecurityManager(sManager);
Subject currentUser = SecurityUtils.getSubject();
if (!currentUser.isAuthenticated()) {
UsernamePasswordToken token = new UsernamePasswordToken("user", "password");
try {
currentUser.login(token);
} catch (UnknownAccountException ex) {
logger.info("Unknown user");
} catch (IncorrectCredentialsException ex) {
logger.info("Incorrect credentials");
} catch (LockedAccountException ex) {
logger.info("Account is Locked");
} catch (AuthenticationException ex) {
logger.info("Authentication Exception");
}
}
logger.info("User [" + currentUser.getPrincipal() +"] logged succesfully");
currentUser.logout();
这些类似乎与1.2.2一起下降。目前的Shiro课程有代码示例吗? – user1069528 2014-01-31 14:42:11
@ user1069528似乎它们仍然存在于Shiro Core 1.2.3中。你是否从项目网站下载了正确的jar? – JBert 2014-03-24 16:19:09
如果使用Spring为核心的架构,您还可以使用应用程序上下文XML来定义领域为:
<bean id="ldapRealm" class="org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm">
<property name="url" value="ldap:/ldapserver:389" />
</bean>
然后交给你的安全经理:
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="ldapRealm" />
</bean>
然后,调用任何你想要的Login代码。
是否有发布日期? – Sven 2010-08-09 06:22:30
只是一个更新 - 最新的Shiro 1.1发行版包含一个新的JndiLdapRealm:http://java.apache.org/static/current/apidocs/org/apache/shiro/realm/ldap/JndiLdapRealm.html JavaDoc显示了如何在INI配置中定义它。 – 2010-11-18 18:37:16