我正在尝试验证Nexus Sonatype配置。我从这里发现了Groovy脚本:
https://github . com/savoirfairelinux/ansi ble-nexus 3-OSS/tree/master/templates/groovy
我能够在Nexus Sonatype中配置LDAP,甚至创建一个新角色(不是从LDAP)。但现在我正在搜索如何获取LDAP用户,然后将他们放在特定的组中。
Groovy脚本如下:
import groovy.json.JsonSlurper
import org.sonatype.nexus.security.user.UserNotFoundException
parsed_args = new JsonSlurper().parseText(args)
try {
// update an existing user
user = security.securitySystem.getUser(parsed_args.username)
/* I tried with 'setSource' but doesn't works... */
user.setSource(parsed_args.source)
user.setFirstName(parsed_args.first_name)
user.setLastName(parsed_args.last_name)
user.setEmailAddress(parsed_args.email)
security.setUserRoles(parsed_args.username, parsed_args.roles)
security.securitySystem.updateUser(user)
security.securitySystem.changePassword(parsed_args.username, parsed_args.password)
security.setUserRoles(parsed_args.username, parsed_args.roles)
} catch(UserNotFoundException ignored) {
// create the new user
security.addUser(parsed_args.username, parsed_args.first_name, parsed_args.last_name, parsed_args.email, true, parsed_args.password, parsed_args.roles)
}
在“用户”选项卡中,Nexus选择“默认”源(不是LDAP…)。我在nexus公共存储库的org.sonatype中进行了搜索。安全小组,但老实说,我不理解他们的课……:https://github.com/sonatype/nexus-public/tree/master/components/nexus-security/src/main/java/org/sonatype/nexus/security
有人已经做过了吗?
编辑:
我试过这个:
import groovy.json.JsonSlurper
import org.sonatype.nexus.security.user.UserNotFoundException
import org.sonatype.nexus.security.user.UserSearchCriteria
parsed_args = new JsonSlurper().parseText(args)
criteria = new UserSearchCriteria(userId: 'myUser', source: 'LDAP')
user = security.securitySystem.searchUsers(criteria)
//user.forEach { println it }
security.setUserRoles(user.userId, 'myRole')
security.securitySystem.updateUser(user)
现在我的错误是:
javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.sonatype.nexus.security.internal.SecurityApiImpl.setUserRoles() is applicable for argument types: (java.util.ArrayList, java.util.ArrayList) values: [[myUser], [myRole]]\\nPossible solutions: setUserRoles(java.lang.String, java.util.List)\"\n}", "content_type": "application/json", "date": "Fri, 30 Dec 2016 10:05:51 GMT", "failed": true, "json": {"name": "setup_user", "result": "javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.sonatype.nexus.security.internal.SecurityApiImpl.setUserRoles() is applicable for argument types: (java.util.ArrayList, java.util.ArrayList) values: [[myUser], [myRole]]\nPossible solutions: setUserRoles(java.lang.String, java.util.List)"}, "msg": "Status code was not [200, 204]: HTTP Error 400: Bad Request
也许,我对ArrayList类型有问题,我尝试了使用“[]”,但没有更好。。
因此,要找到所有LDAP用户,您可以执行以下操作
import org.sonatype.nexus.security.user.UserSearchCriteria
criteria = new UserSearchCriteria(source: 'LDAP')
users = security.securitySystem.searchUsers(criteria)
users.forEach { println it }
从那以后,我不确定为什么要切换源,但是这将得到所有LDAP用户的列表。
我正在使用openLDAP服务器对我的夸克应用程序上的用户进行身份验证。一切正常,但我想检索我的用户数据。 我以为它会出现在方法身份中。getAttributes()但这给了我一个空映射。 以下是一个用户示例: 这也是我的ldap配置: 如何获取我的用户邮件和CN? 非常感谢您的帮助, 托马斯
嗨,我试图从LDAP和该组中的用户获取所有postxGroup。下面的代码是我到目前为止所做的,它返回我所有的组,但我不知道如何获得这些组的用户。请指导我这种做法好吗?或者我应该先得到用户,然后根据GID得到组名?
我是LDAP的新手,我尝试过在OpenLDAP上实现RBAC。我创建了一些用户(inetOrganizationPerson)并将它们放在组中(groupOfNames)。接下来,我创建了一些角色(organizationalRole)并将它们与用户组关联(RoleIncuspant),而不是直接将它们与用户关联。 1)/usr/local/bin/ldapsearch-x-b'ou=groups
你能告诉我如何向控制台或视图显示用户角色以进行测试吗?我可以通过从ldap中的用户列中获取用户角色来重新定义(默认情况下从ldap'cn'获取角色)用户角色吗? 谢谢你。
当我从DeployerConfigContext.xml中删除attributeRepository时,它的抛出异常。 根据本文档https://apereo.github.io/cas/4.2.x/installation/ldap-authentication.html,LdapAuthenticationHandler能够独立地解析和检索主体属性,而不需要额外的主体解析器机器。如果是,我们如
我一直在寻找一种使用spring ldapTemplate通过LDAP验证用户名的方法。 我的搜索结果是 但我想知道我需要在contextMapper或attributeMapper中添加什么。据我所知,它用于将数据映射到对象。但我不需要这个东西。我只想知道布尔值是否存在。 我的属性示例: 我的模板包含url、用户名和密码,连接已经建立。 我需要一些帮助,因为我不确定使用搜索方法是否正确。 我已使