对方没有单点登录接口,如果实现单点登录?

遥了老命 2017-02-03 03:33:15
加精
最近得到了一个需求,做单点登录。
公司买了好几个软件,我们把这些软件集成到一个系统上面。因为是不同的公司的软件,有的只给了几个管理员的帐号等,所以不存在数据库等其他工具。
举例:
某个 软件A,给了一个admin账号密码,然后给了一个登录网址(就如同淘宝那种登录界面,可以输入账号密码的网址)。
然后通过我本地的项目,点击某个按钮,实现 不用输入账号密码,就能登录 软件A。

这个要怎么实现?
...全文
6209 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
遥了老命 2019-03-08
  • 打赏
  • 举报
回复
引用 26 楼 wpslowam 的回复:
这个帖子看到有点迟了。这个功能其实很简单。
做个虚拟登录,也就是写个js,不过你需要知道对方项目部署的地方,把js放到对方项目对于的路劲。
原理如下:你在你自己软件里面点击按钮,跳转到对方的登录页面,这时,你的js自动输入用户名和密码,然后自动click,就直接可以进去了。


额,才看到。。。。
当时 因为系统是甲方的,我们的系统新做的,而甲方不允许 做任何修改。这个条件,去做单点登录。
wpslowam 2017-10-11
  • 打赏
  • 举报
回复
这个帖子看到有点迟了。这个功能其实很简单。 做个虚拟登录,也就是写个js,不过你需要知道对方项目部署的地方,把js放到对方项目对于的路劲。 原理如下:你在你自己软件里面点击按钮,跳转到对方的登录页面,这时,你的js自动输入用户名和密码,然后自动click,就直接可以进去了。
xiaozhu12371237 2017-02-22
  • 打赏
  • 举报
回复
上楼说得是对的
什么都不能 2017-02-13
  • 打赏
  • 举报
回复
引用 23 楼 lfyainr 的回复:
需要对方软件配合么?我这个需求的前提 你就当买了个成品回来,然后对方失踪了。没有代码,没有一切的东西。 这个实现不了把
这个看你实力了,如果有项目代码实现起来更容易些,没有的反编译也可以,改动不大,主要是配置web.xml 然后让系统自带的登录验证失效,只保留权限验证。
遥了老命 2017-02-13
  • 打赏
  • 举报
回复
引用 16 楼 hanpoyangtitan 的回复:
[quote=引用 6 楼 lfyainr 的回复:] [quote=引用 2 楼 hanpoyangtitan 的回复:] 给你点一下:CAS 其他自己查资料
我看了下,这个需要对 已经完成的系统做改动么? 实际上是我2楼说的那样,我这有个 已经在用的系统,我不会做一点改动,给你个网址和账号密码,你从你的网页 跳转到我的登录后的界面。 我的系统带referer验证 和 cookies加密。 你这个能实现么?[/quote] 那个是session ID 是个散列码,不是加密。 要实现一次登录 就必须有统一的用户验证中心和凭证颁发中心。那个refer cookie 先不说能不能实现,读取用户和口令再提交,这就是漏洞,用户密码应该是密文而且最好是不可逆的,只能对比密文实现校验,你要学CSDN明文加密的话,那看你公司的实际情况了。目前实现跨系统登录 我接触的有两种方式,一个是签名认证,一种是sso 使用过的产品siteminder和cas 做的好的话可以实现和电脑登录域用户做集成,只要登录电脑就实现了登录。不同组织机构(合作商家)间用token 和数据签名的方式。[/quote] 需要对方软件配合么?我这个需求的前提 你就当买了个成品回来,然后对方失踪了。没有代码,没有一切的东西。 这个实现不了把
遥了老命 2017-02-13
  • 打赏
  • 举报
回复
引用 20 楼 xxyj6450 的回复:
我们以前的OA也是POST过去。 验证码破解很容易的,网上买个验证码破解组件吧,不同系统可以有定制的组件,也有自己训练再生成dll的。 再大不了就把验证码弹个窗出来让用户填呗。
不是验证码。
xiaoxiangqing 2017-02-11
  • 打赏
  • 举报
回复
没有弄过,也想知道有没有简单的方法
nettman 2017-02-11
  • 打赏
  • 举报
回复
三断笛 2017-02-11
  • 打赏
  • 举报
回复
我们以前的OA也是POST过去。 验证码破解很容易的,网上买个验证码破解组件吧,不同系统可以有定制的组件,也有自己训练再生成dll的。 再大不了就把验证码弹个窗出来让用户填呗。
什么都不能 2017-02-10
  • 打赏
  • 举报
回复
引用 6 楼 lfyainr 的回复:
[quote=引用 2 楼 hanpoyangtitan 的回复:] 给你点一下:CAS 其他自己查资料
我看了下,这个需要对 已经完成的系统做改动么? 实际上是我2楼说的那样,我这有个 已经在用的系统,我不会做一点改动,给你个网址和账号密码,你从你的网页 跳转到我的登录后的界面。 我的系统带referer验证 和 cookies加密。 你这个能实现么?[/quote] 那个是session ID 是个散列码,不是加密。 要实现一次登录 就必须有统一的用户验证中心和凭证颁发中心。那个refer cookie 先不说能不能实现,读取用户和口令再提交,这就是漏洞,用户密码应该是密文而且最好是不可逆的,只能对比密文实现校验,你要学CSDN明文加密的话,那看你公司的实际情况了。目前实现跨系统登录 我接触的有两种方式,一个是签名认证,一种是sso 使用过的产品siteminder和cas 做的好的话可以实现和电脑登录域用户做集成,只要登录电脑就实现了登录。不同组织机构(合作商家)间用token 和数据签名的方式。
RLib 2017-02-10
  • 打赏
  • 举报
回复
登录系统带验证码的话只能开小灶了,不想折腾的话
nettman 2017-02-10
  • 打赏
  • 举报
回复
遥了老命 2017-02-09
  • 打赏
  • 举报
回复
补充一句,只是来问问有没有方法,开拓一下思维。
遥了老命 2017-02-09
  • 打赏
  • 举报
回复
引用 13 楼 lmkght 的回复:
[quote=引用 8 楼 lmkght 的回复:] 那就直接把他给你那个登陆页面里的登陆接口要过来 直接给那里传入账号密码
那你就只能试试看能不能模拟在他那个页面上进行自动填写账号密码并点击登录的功能了 如果这些都实现不了 也不用尝试什么单点登陆的 cas 和其他一些能做单点登陆功能的都是需要两边合作研发的[/quote] 对,我问过几个大神,如果带验证的话基本 post不进去,只有没有什么安全性的,可以模拟表单post的进去。
lmkght 2017-02-09
  • 打赏
  • 举报
回复
引用 8 楼 lmkght 的回复:
那就直接把他给你那个登陆页面里的登陆接口要过来 直接给那里传入账号密码
那你就只能试试看能不能模拟在他那个页面上进行自动填写账号密码并点击登录的功能了 如果这些都实现不了 也不用尝试什么单点登陆的 cas 和其他一些能做单点登陆功能的都是需要两边合作研发的
遥了老命 2017-02-09
  • 打赏
  • 举报
回复
我做了个jsp,有的网站能单点进去,有的就不行。 我想问如果有验证机制的怎么办。 我想说回复有方法的,可以去试试 京东,淘宝啊这些大网站,没有任何的接口,怎么登录进去。 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>单点页面</title> </head> <body style="background:white"> <form id="sys-action" action="http://xxxx:8080/login/" method="post" target='_self'> <input type="test" name="username" id="username" value='admin'></input> <input type="hidden" name="password" id="password" value='1234'></input> <input type="button" name="button" id="button" value="登录" onclick="submit();"/> </form> </body> <script> window.onload = function(){ jQuery("#button").click(); } </script> </html>
遥了老命 2017-02-09
  • 打赏
  • 举报
回复
引用 10 楼 unclezh0730 的回复:
这个工程贼几把大了.首先,你要写一个单点登录(sso)和一个登陆系统,将那些需要进行单点登陆的系统都归纳到sso的白名单里,然后你在任意一个登陆系统登录之后,请求道sso去,生成信任,然后这个信任和客户端请求的系统(白名单的系统)返回给登陆的客户端,并且sso存储这个信任,客户端收到返回的白名单系统请求(这个请求必须是sso给出,不能由客户端直接可以请求),重定向请求到实际需要请求的地址,该系统验证拿着客户端的信任到sso中验证,验证ok说明在sso中进行过登陆,做放行,数据的获取等等,实现单点登录。但是这工程量,是相当巨大的。
这个需要改软件。首先 ,软件是我们买的,他们的内部是什么,我们完全不知道,我们就买了个软件使用权。 对方不做定制,不提供任何接口和技术方面的支持。 对方登录的验证机制我们也完全不知道。 你说的这个应该是要增加对方的登录验证的吧,这样实现不了/
unclezh0730 2017-02-09
  • 打赏
  • 举报
回复
这个工程贼几把大了.首先,你要写一个单点登录(sso)和一个登陆系统,将那些需要进行单点登陆的系统都归纳到sso的白名单里,然后你在任意一个登陆系统登录之后,请求道sso去,生成信任,然后这个信任和客户端请求的系统(白名单的系统)返回给登陆的客户端,并且sso存储这个信任,客户端收到返回的白名单系统请求(这个请求必须是sso给出,不能由客户端直接可以请求),重定向请求到实际需要请求的地址,该系统验证拿着客户端的信任到sso中验证,验证ok说明在sso中进行过登陆,做放行,数据的获取等等,实现单点登录。但是这工程量,是相当巨大的。
遥了老命 2017-02-09
  • 打赏
  • 举报
回复
引用 8 楼 lmkght 的回复:
那就直接把他给你那个登陆页面里的登陆接口要过来 直接给那里传入账号密码
没有接口,对方不提供任何服务。
lmkght 2017-02-09
  • 打赏
  • 举报
回复
那就直接把他给你那个登陆页面里的登陆接口要过来 直接给那里传入账号密码
加载更多回复(7)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧