java / groovy / grails / shiro / you-name-it的新手总数,所以请耐心等待。我已经用尽了教程和所有" Shiro LDAP"搜索可用但仍然无法使我的项目正常工作。
我使用jdk1.7.0_80,Grails 2.3.0和Shiro 1.2.1在GGTS上运行所有这些。
我有一个工作项目并成功运行了quick-start-shiro,它构建了域ShiroRole和ShiroUser,控制器authController,视图login.gsp和关系ShiroDbRealm。我使用
在BootStrap中创建了一个虚拟用户def user = new ShiroUser(username: "user123", passwordHash: new Sha256Hash("password").toHex())
user.addToPermissions("*:*")
user.save()
并且可以成功登录我的主页,并且出于所有意图和目的,这是我已经获得的。我找不到一个自上而下的教程,说明如何使用我的用户名和密码登录(通过我可用的LDAP服务器进行身份验证)。根据我的理解,我需要创建一个shiro.ini文件,并包含
的内容[main]
ldapRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm
ldapRealm.url = ldap://MYURLHERE/
但是我甚至不知道在哪里放这个shiro.ini文件。我见过/ src / main / resources,但是没有这样的目录。我是手动创建这个还是创建脚本?
下一步似乎是创建了SecurityManager,它以某种方式读取shiro.ini
Factory<org.apache.shiro.mgt.SecurityManager> factory = new IniSecurityManagerFactory("actived.ini");
// Setting up the SecurityManager...
org.apache.shiro.mgt.SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
然而,这总是出现在教程中的某个Java文件中,但我的项目是GGTS内部的Groovy项目。我是否需要创建一个Java文件并将其放在src / java或类似的东西中?
我最近发现我可能需要一个ShiroLdapRealm文件(类似于ShiroDbRealm),其中包含
等信息def appConfig = grailsApplication.config
def ldapUrls = appConfig.ldap.server.url ?: [ "ldap://MYURLHERE/" ]
def searchBase = appConfig.ldap.search.base ?: ""
def searchUser = appConfig.ldap.search.user ?: ""
def searchPass = appConfig.ldap.search.pass ?: ""
def usernameAttribute = appConfig.ldap.username.attribute ?: "uid"
def skipAuthc = appConfig.ldap.skip.authentication ?: false
def skipCredChk = appConfig.ldap.skip.credentialsCheck ?: false
def allowEmptyPass = appConfig.ldap.allowEmptyPasswords != [:] ? appConfig.ldap.allowEmptyPasswords : true
以及
中Config中的相应信息ldap.server.url = ["ldap://MYRULHERE/"]
ldap.search.base = 'dc=COMPANYNAME,dc=com'
ldap.search.user = '' // if empty or null --> anonymous user lookup
ldap.search.pass = 'password' // only used with non-anonymous lookup
ldap.username.attribute = 'AccountName'
ldap.referral = "follow"
ldap.skip.credentialsCheck = false
ldap.allowEmptyPasswords = false
ldap.skip.authentication = false
但把所有这些碎片放在一起并没有让我到任何地方!我至少走在正确的轨道上吗?任何帮助将不胜感激!
答案 0 :(得分:0)
对于/src/main/resources
,如果您将maven用于项目,它将自动为您创建。此外,您还可以手动创建该目录。