我们做了一个应用系统,但是客户突然要求登录时能够 由他们的单点登录系统统一登录,我不知道改怎么更改了我们系统的顺序是: jsp(登录页面)——》xml——》action(判断)——》进入主页面客户这边的技术人员说 你们要做个页面,接受到我们给你传的参数,例如:url: http://submit.JSP?userid=职工号&datetime=20071120103300&md5=...我没有了思路,请大家帮帮我。

解决方案 »

  1.   

    单点登陆也可以叫做模拟登陆,就是直接根据一个url传递用户名不传递密码进行登陆的一种方式(也就是说登陆交给单点登陆系统去做,这样就可以实现多个子系统共享一个登陆系统),你可以新写一个单点登陆的action发布出去,这个action除了不验证密码外跟正常的登陆action一样,然后跳转主页面就可以了上面这种方式的缺点就是不安全,任何一个人都可以通过一个url就可以登陆到系统中来,如果对安全性有要求的话就需要对action进行改造,用户调用你的action的时候一定要传递一个唯一的key值(每次访问都会由他们的单点登录系统生成,他们肯定会有,否则就太垃圾了),你的action接到这个请求后,把这个key值通过单点登录系统提供的一个验证url去验证(任何一个sso单点登陆系统都是这个机制,采用httpclient的方式进行回调验证,返回值为true表明这个key值是由单点系统生成的),这样就可以保证非单点登陆系统发过来的请求就无法通过验证,这样系统就是安全的
      

  2.   

    jsp(登录页面)——》xml——》action(判断)——》进入主页面
    http://submit.JSP?userid=职工号&datetime=20071120103300&md5=...就按照他的思路,你写一个页面submit.JSP,接受他给你传的userid等认证信息,接收到后(你可以在你自己的系统中专门建立一个用户,用作单点登录),跳转到你的登陆action,再在你系统中的action里进行登录(用你系统中的专门用作单点登录的那个用户,或者如果你数据库中有他的userid,那就登陆这个用户)总之你给他个连接,这个连接是你用来接受他给你单点登录的认证信息。认证通过,进行相应用户的登陆操作就成了。
      

  3.   

    你写这样一个action会吧:这个action接收他的系统给你的参数
    http://sso.do?userid=职工号&datetime=20071120103300&md5=...或者页面也行
    http://submit.JSP?userid=职工号&datetime=20071120103300&md5=...然后你把参数userid、datetime、md5等等拿到。根据他们单点登录的要求,是用某个账户登录,还是你们两个系统共享同一个用户数据库。从库中取到要登录到你那个系统中的用户,进行校验。然后执行登陆操作