0

我正在尝试以无头方式使用 valence api。

旁注:我必须修改超链接,使它们不是链接,否则我无法发布问题。

场景一:

使用提供的 Java 示例时,如果不存在 cookie,则会命中以下 URL:

https://elearning.masked.edu/d2l/auth/api/token?x_a=JjGDh8MaskedDgOGlPPagA&x_b=gnNIMasked99PGLtcVflc_488PD59k2TjJbfyj-jlXHY&x_target=http%3A%2F%2Flocalhost%3A8080%2FD2LValenceExample%2Findex.jsp

这给了我一个 302 响应并将浏览器发送到

https://elearning.masked.edu/d2l/login?target=%2fd2l%2fauth%2fapi%2ftoken%3fx_a%3dJjGDh8MaskedDgOGlPPagA%26x_b%3dgnNIMasked99PGLtcVflc_488PD59k2TjJbfyj-jlXHY%26x_target%3dhttp%253a%252f%252flocalhost%253a8080%252fD2LValenceExample%252findex .jsp&sessionExpired=1

这给了我另一个 302 响应并将浏览器发送到

https://elearning.masked.edu/?target=%2fd2l%2fauth%2fapi%2ftoken%3fx_a%3dJjGDh8MaskedDgOGlPPagA%26x_b%3dgnNIMasked99PGLtcVflc_488PD59k2TjJbfyj-jlXHY%26x_target%3dhttp%253a%252f%252flocalhost%253a8080%252fD2LValenceExample%252findex.jsp

这是 D2L 登录屏幕。因此,我登录并将带有我的凭据的帖子发送到:

https://elearning.masked.edu/d2l/lp/auth/login/login.d2l

最后,我的浏览器被发送到 D2L 主页:

https://elearning.masked.edu/d2l/lp/homepage/home.d2l?ou=1234123

这不遵循http://docs.valence.desire2learn.com/basic/auth.html中列出的流程。我期待重定向到 appURL。

但是,当我们第二次这样做时,就达到了预期的结果:

场景二:

https://elearning.masked.edu/d2l/auth/api/token?x_a=JjGDh8MaskedDgOGlPPagA&x_b=gnNIMasked99PGLtcVflc_488PD59k2TjJbfyj-jlXHY&x_target=http%3A%2F%2Flocalhost%3A8080%2FD2LValenceExample%2Findex.jsp

http://localhost:8080/D2LValenceExample/index.jsp?x_a=Da6kyMaskedDMZy8l_1&x_b=SV6_ONhvMaskedoBc_hHZ&x_c=oD7JMT9CGgyLljIF_1MaskedCI5YZHJPcIgKD4

不同的是饼干。当我删除 elearning.masked.edu 的 cookie 时,场景 1 中的结果总是会发生。所以问题变成了当我们在没有 cookie 的情况下启动 web 服务身份验证调用的正确方法是什么?

4

1 回答 1

0

在没有 cookie 的情况下(场景 1)开始时,该序列是我习惯看到的(使用示例和测试服务器),但有一个区别。

在将凭据发布到的最后一步:http{s}://elearning.masked.edu/d2l/lp/auth/login/login.d2l

预期的结果是首先重定向回登录资源 (d2l/auth/api/token),然后重定向到您的目标:http://localhost:8080%/D2LValenceExample/index.jsp

几个建议来解决这个问题:

使用示例中的密钥和服务器 (http://docs.valence.desire2learn.com/samples/gettingStarted.html#java) 是否可以使用相同的代码?如果是这样,它会建议特定于服务器的上下文(这可能意味着联系 D2L 支持)。

在发布凭据和到达主页之间是否还有其他重定向步骤?

是否有任何可能影响登录的特殊过滤器或身份验证系统正在使用?

于 2012-03-28T16:04:03.670 回答