Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

应用系统检验token时,为什么没有从cookie取值 #37

Open
lizhengjun1982 opened this issue May 16, 2018 · 5 comments
Open

应用系统检验token时,为什么没有从cookie取值 #37

lizhengjun1982 opened this issue May 16, 2018 · 5 comments

Comments

@lizhengjun1982
Copy link

单点登录系统验证通过后,是有把token写入到cookie中,但应用系统检验token时,并没有从cookie取值,而是从queryString中取值,而且还再次做了一次跳转,以消除url中的token参数,如此一来,同时把所有的queryString参数都消除了。

单点登录系统验证通过后,往cookie中写入了token,跳转回应用系统页面时,其实不需要在url中携带token参数了,而且在应用系统这边检验token时,直接从cookie中取值即可,也无需再次跳转。如此不是很简单,很方便吗?

牵涉代码:com.smart.sso.client.SsoFilter类的isAccessAllowed方法。

@ybbbzZ
Copy link

ybbbzZ commented Sep 5, 2019

其实这里我也一直不理解,不知道您现在有没有搞懂,搞懂的话可以解释下吗?
image

其实这里的代码逻辑对应的sso校验流程图里的-->本地token不存在,要去服务端去校验<--这一步的吧,就是下图的这部分逻辑,但为什么这里却没有走rpc调用去检测服务端是否存在token,而是从request里直接取值,百思不得其解。看到作者说request.getParameter(SSO_TOKEN_NAME)里的SSO_TOKEN_NAME是sso授权回调的参数token名称,但在哪里回调的代码又找不到,实在费解,您现在懂得话,还请指点一下。
image

@ybbbzZ
Copy link

ybbbzZ commented Sep 5, 2019

@a466350665

@a466350665
Copy link
Owner

a466350665 commented Sep 5, 2019 via email

@lizhengjun1982
Copy link
Author

lizhengjun1982 commented Sep 5, 2019 via email

@Gahon1995
Copy link

登录时返回写入的cookie只是对应登录页面域名的cookie,并没有保存到当前client端对应域名下的cookie,所以只能通过url携带token,通过拦截验证再次跳转的方式来将token写到当前域名的cookie中

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants