简单的LDAP SSO身份验证

时间:2014-11-13 15:15:34

标签: 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, 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());
    }

目前,用户使用表单登录。我想设置一个SSO身份验证,但我找不到一种方法来轻松设置它。 我是否需要使用像CAS这样的东西?还是有一个简单的方法? 谢谢:)

1 个答案:

答案 0 :(得分:0)

SSO是一个相当广泛的主题,我不确定你在这里想要实现的目标。但是,如果您希望为Windows用户提供SSO,即允许已经通过域控制器进行身份验证的Windows用户使用相同的凭据访问您的应用,您可以查看WAFFLE,确切地说就是这样。