Java 简单LDAP SSO身份验证
我有一个非常简单的LDAP身份验证: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
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=)