可以直接通过玉符科技IDAAS平台来实现单点登录,支持所有的标准协议,如果是老旧或者自研的系统,也有SDK去适配所有的开发语言,不止是java。
玉符单点登录
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
package DesktopSSO
import java.io.*
import java.net.*
import java.text.*
import java.util.*
import java.util.concurrent.*
import javax.servlet.*
import javax.servlet.http.*
public class SSOAuth extends HttpServlet {
static private ConcurrentMap accounts
static private ConcurrentMap SSOIDs
String cookiename="WangYuDesktopSSOID"
String domainname
public void init(ServletConfig config) throws ServletException {
super.init(config)
domainname= config.getInitParameter("domainname")
cookiename = config.getInitParameter("cookiename")
SSOIDs = new ConcurrentHashMap()
accounts=new ConcurrentHashMap()
accounts.put("wangyu", "wangyu")
accounts.put("paul", "paul")
accounts.put("carol", "carol")
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter()
String action = request.getParameter("action")
String result="failed"
if (action==null) {
handlerFromLogin(request,response)
} else if (action.equals("authcookie")){
String myCookie = request.getParameter("cookiename")
if (myCookie != null) result = authCookie(myCookie)
out.print(result)
out.close()
} else if (action.equals("authuser")) {
result=authNameAndPasswd(request,response)
out.print(result)
out.close()
} else if (action.equals("logout")) {
String myCookie = request.getParameter("cookiename")
logout(myCookie)
out.close()
}
}
.....
}