【发布时间】:2011-01-17 05:35:04
【问题描述】:
我在我的 glassfish 服务器上使用 gwt,并且我正在尝试通过 cookie 对我的一些 RPC 调用进行身份验证。这可能吗?有没有关于如何编码的例子?
【问题讨论】:
标签: java authentication gwt cookies
我在我的 glassfish 服务器上使用 gwt,并且我正在尝试通过 cookie 对我的一些 RPC 调用进行身份验证。这可能吗?有没有关于如何编码的例子?
【问题讨论】:
标签: java authentication gwt cookies
仅依赖 cookie 进行身份验证将使您的网站/服务容易受到跨站点请求伪造/XSRF/CSRF 攻击 - 请阅读 Security for GWT Applications 了解更多信息。
最好的方法是仔细检查您从 cookie 获得的值以及通过其他方式传输到服务器的值 - 作为请求的一部分(标头、自定义字段等)。
除此之外,还有许多涵盖该主题的教程 - 只需搜索 Java(servlet)身份验证 - 它不必是特定于 GWT 的。 Google Web Toolkit Group也有很多threadsaboutthesubject。
【讨论】:
我假设您使用 GWT 的 RPC servlet 来处理客户端发出的请求。
我想到的一个选择是在请求到达 GWT 的 servlet 之前编写和配置一个可以检查 cookie 的 ServletFilter。
【讨论】:
您可能会重新考虑使用 cookie,因为它是一个潜在的安全漏洞。 为什么不将您的通信使用 HTTPS?
【讨论】:
你能不能只使用标准的“会话”范围,即
request.getSession()
我在 GWT 应用程序中使用的一种模式是有一个单独的“老式”登录表单来设置会话。成功登录后,将显示 GWT 应用的主机页面。
如果会话中没有必要的值,则说明用户未登录。您的服务应该返回一个异常,可能会指示 GWT 应用重定向到登录页面,或显示错误。
【讨论】: