我正在编写一个小工具,它可以在ldap
内执行某些操作(例如创建用户,删除用户,分配用户到组,读取特定属性等)。这很有效。
现在我想添加一些安全方面。只允许一些用户执行这些操作。这就是为什么我想首先检查,如果想要执行执行的用户是在特定的ldap-group
(例如管理员)。如果用户不在此组中,他应该收到一条消息(“您未经授权”)。
我的标准登录就像在任何地方描述的那样:
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, LDAP_SERVER_URL + ":" + LDAP_PORT + "/" + LDAP_BASE_DN);
if (LDAP_SERVER_URL.startsWith("ldaps")) {
env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put("java.naming.ldap.factory.socket", "com.ibm.devopscoc.ldap.util.LdapSSLSocketFactory");
InputStream truststoreStream = LdapSSLSocketFactory.class.getResourceAsStream("truststoreldap.jks");
LdapSSLSocketFactory.init(null, null, null, truststoreStream, "<password>", "JKS");
}
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, probs.getAdminName());
env.put(Context.SECURITY_CREDENTIALS, probs.getAdminPassword());
env.put(Context.REFERRAL, "follow");
我在哪里指定小组?
提前致谢。