SSO跟踪


1 . 用户首次访问应用端,未携带cookie数据. 应用端会让用户重定向到服务器.  
请求: http://192.168.10.110:8080/ITSSSOClient/index.jsp  
重定向: http://192.168.10.110:8080/ITSSSO/SSOAuth?action=preLogin&setCookieURL= http://192.168.10.110:8080/ITSSSOClient/setCookie&gotoURL= http://192.168.10.110:8080/ITSSSOClient/

2.服务器端收到用户的请求,先取得 action=preLogin.判断cookie为null,然后转发到login.jsp
用户的浏览器显示服务器端的login.jsp页面
注:服务端代码133行,地址栏上的URL不改变

3.用户填写表单,登录.
    登录时, 应用端会生成一个cookie值,用于传递给服务端处理.
    服务器端会获取action=login(来至login页面表单里的action的name)
    并进入doLogin, 读取username和password做校验
    生成一个唯一码进行加密,且服务端将储存用户登录信息(用户名,登录时间,过期时间),并将加密后的cookie信息返回给应用端.

让浏览器将执行:
out.print("<script type='text/javascript'>");
            out.print("document.write(\"<form id='url' method='post'   action='" + setCookieURL + "'>\");");
            out.print("document.write(\"<input type='hidden' name='gotoURL' value='" + gotoURL + "' />\");");
            out.print("document.write(\"<input type='hidden' name='ticket' value='" + encodedticketKey + "' />\");");
            out.print("document.write(\"<input type='hidden' name='expiry' value='" + expiry + "' />\");");
            out.print("document.write('</form>');");
            out.print("document.getElementById('url').submit();");
            out.print("</script>");
setCookieURL : http://127.0.0.1:8080/ITSSSOClient/setCookie
gotoURL :http://127.0.0.1:8080/ITSSSOClient/
encodedticketKey :079482AC1F897530ED61D7B0C891A3EFBE2A3A6F2BAA762036E97E9F5415E625AD6A88B4FA37833D
expiry :604800

4.应用端执行setCookie方法,保存服务器端返回的数据参数.
页面跳转到 http://127.0.0.1 :8080/ITSSSOClient/
此次页面跳转,携带了服务器返回的cookie

5. 应用端拦截跳转链接,进入authCookie方法,填充action值为authTicket.
    携带{{ action, authTicket},{SSOID, 079482AC1F897530ED61D7B0C891A3EFBE2A3A6F2BAA762036E97E9F5415E625AD6A88B4FA37833D } }信息去访问认证系统=> http://127.0.0.1 :8088/ITSSSO/SSOAuth

6.服务端再次接受到应用端的请求,判断action= authTicket ,并做相应处理(将步骤5中的SSOID值 进行解密判断是否正确 )
判断正确:
返回信息:   {"error":false,"username":XXXX}

7.应用端此刻还在 authCookie方法中, 取得服务端返回的信息(主要是在resp中填充username的值).在 http://127.0.0.1 :8088/ITSSSOClient/   ,将页面返回给浏览器.(最初请求的页面)

 









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值