大师,
我正在尝试通过引用“CALLBACKS”下的this文章来实现LDAP回调功能
我已经没有问题地配置了LDAP。我的要求是根据DS服务器中的属性将ldap用户分配给CRX组。现在根据我的理解,当LDAP用户第一次尝试登录时,CQ会自动调用我的实现Callback接口的类。如果我错了,请纠正我。
所以,我决定创建实现Callback接口的bundle。凭借我的小知识,到目前为止我已经做到了这一点 -
i)在CRXDE lite中,我在geometrixx项目下添加了一个bundle并附加了简单的代码但是在构建bundle期间我收到错误,说回调无法解析为类型。
import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.api.security.user.Group;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.jcr.SimpleCredentials;
public class SyncUser implements com.day.crx.security.ldap.sync.Callback{
@Override
public void onUserSync(User userToBeSynched, Map<String, Value[]> attributes,
ValueFactory valueFactory) throws RepositoryException {
Iterator iter = attributes.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry mEntry = (Map.Entry) iter.next();
javax.jcr.Value val = (javax.jcr.Value)mEntry.getValue();
// Error** [Ljavax.jcr.Value; cannot be cast to javax.jcr.Value
System.out.println(mEntry.getKey() + " : " + val.getString());
}
}
@Override
public void onGroupSync(Group group,
Map<String, Value[]> attributes,
ValueFactory vf) throws RepositoryException{
System.out.println("Hello onGroupSync");//do my stuff
}
}
我找不到有关此com.day.crx.security.ldap.sync.Callback接口的任何文档。请指导我。感谢您的帮助
答案 0 :(得分:0)
以下是com.day.crx.security.ldap.sync.Callback的至少部分文档:https://docs.adobe.com/docs/en/cq/5-6-1/core/administering/ldap_authentication.html#Callbacks
回调接口位于crx-auth-ldap模块中并具有 需要实施的以下方法:
您至少需要以下依赖项(jar文件)来创建和 构建一个回调类:
jcr-<version>.jar crx-auth-<version>.jar
两者都与CRX Explorer Web应用程序捆绑在一起,可以 从战争文件中提取。
编译并打包回调类之后,您需要进行编译 适用于CRX。最简单的方法是放置自定义回调 与CRX webapp一起实现 CRX-快速启动/服务器/运行/ 0 / _crx / WEB-INF / [LIB |类]