Java 简单LDAP SSO身份验证

Java 简单LDAP SSO身份验证,java,single-sign-on,Java,Single Sign On,我有一个非常简单的LDAP身份验证: DirContext ctx = null; try { logger.debug("Trying to log with LDAP"); Hashtable<String, String> env = new Hashtable<String, String>(); env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY

我有一个非常简单的LDAP身份验证:

DirContext ctx = null;
    try
    {
        logger.debug("Trying to log with LDAP");
        Hashtable<String, String> env = new Hashtable<String, String>();
        env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, ninjaProperties.get("ldapFactory"));
        env.put(javax.naming.Context.PROVIDER_URL, ninjaProperties.get("ldapProvider"));
        env.put(javax.naming.Context.SECURITY_AUTHENTICATION, ninjaProperties.get("ldapAuthentication"));
        env.put(javax.naming.Context.SECURITY_PRINCIPAL, ninjaProperties.get("ldapDomain") + context.getParameter("login")); 
        env.put(javax.naming.Context.SECURITY_CREDENTIALS, context.getParameter("password"));


        ctx = new InitialDirContext(env);

        if(ctx != null){
            logger.info( "User [" + context.getParameter("login") + "] logged in successfully." );
            ctx.close();
            return Results.redirect("/TermeController/consult");
        }

    }
    catch (Exception e)
    {           
        logger.error("LDAP Login failed : " + e.toString());
    }
DirContext ctx=null;
尝试
{
debug(“尝试使用LDAP登录”);
Hashtable env=新的Hashtable();
put(javax.naming.Context.INITIAL_Context_工厂,ninjaProperties.get(“ldapFactory”);
put(javax.naming.Context.PROVIDER_URL,ninjaProperties.get(“ldapProvider”);
put(javax.naming.Context.SECURITY_AUTHENTICATION,ninjaProperties.get(“ldapaauthentication”);
env.put(javax.naming.Context.SECURITY_PRINCIPAL,ninjaProperties.get(“ldapDomain”)+Context.getParameter(“login”);
env.put(javax.naming.Context.SECURITY_凭证,Context.getParameter(“密码”));
ctx=新的初始目录上下文(env);
如果(ctx!=null){
logger.info(“用户[”+上下文.getParameter(“登录”)+“]已成功登录。”);
ctx.close();
返回结果。重定向(“/TermeController/consult”);
}
}
捕获(例外e)
{           
logger.error(“LDAP登录失败:+e.toString());
}
目前,用户使用表单登录。我想设置SSO身份验证,但我找不到一种简单的方法来设置它。 我需要使用CAS之类的东西吗?还是有一个简单的方法?
Thx:)

SSO是一个相当广泛的话题,我不确定您在这里到底想要实现什么。但是,如果您希望为windows用户提供SSO,即允许已通过域控制器身份验证的windows用户使用相同的凭据访问您的应用程序,您可以查看哪些凭据正是这样做的。

这正是我试图做的,我将尝试使用华夫格,thx=)