首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用在表单登录时重定向到上次访问的资源Glassfish

禁用在表单登录时重定向到上次访问的资源Glassfish
EN

Stack Overflow用户
提问于 2013-04-11 19:29:42
回答 3查看 715关注 0票数 4

我要重写我之前的问题。

Glassfish在表单登录后重定向到上次访问的资源,我该如何关闭它?

我们的问题是,我们在FF和IE中得到415,因为如果我有一个JSESSION cookie,Glassfish将重定向到我试图访问的最后一个资源,但没有从(x-form-urlencoded)切换内容类型。

伪例(请求是浏览器的XMLHttpRequest):

代码语言:javascript
复制
GET /secure/resouce1 (json) -> Response "you're not logged in."
GET /login.xhtml
POST /j_secure (x-form-urlencoded) -> New location /secure/resource1 (x-form-urlencoded)
GET /secure/resource1 (x-form-urlencoded) <- HTTP ERROR 415 content type not JSON.
EN

回答 3

Stack Overflow用户

发布于 2013-04-22 15:06:48

您可能需要编写一个Filter来检查和捕获这种情况。我喜欢this tutorial (希望翻译成英语是可以理解的)。

票数 0
EN

Stack Overflow用户

发布于 2013-04-23 19:28:12

在我看来,对于RESTful服务,最好使用基于SSL的基本或摘要身份验证。其他选项包括将凭据作为有效负载的一部分,或者创建专用登录服务,该服务接受凭据并返回令牌。基于表单的身份验证不太适合RESTful服务的原因有很多种:它需要一个会话,它不使用现有的HTTP Authorization等等。

如果需要使用AJAX调用RESTful服务,那么使用cookie进行身份验证可能是一个有效的解决方案。它们应该只影响用户是否可以发出呼叫,而不是服务器如何响应。

如果您希望继续对应用程序使用基于表单的身份验证,我建议您添加一个额外的JAAS身份验证提供程序,它将处理RESTful服务身份验证。你可以阅读更多关于它的here

另一种应该比JAAS更容易的选择是使用Spring SecurityApache Shiro,而不是基于容器的身份验证。Here是使用Spring Security配置基于表单的身份验证的一个示例。这篇文章展示了一个如何使用Spring Security进行secure RESTful services的例子。

票数 0
EN

Stack Overflow用户

发布于 2013-06-07 09:24:34

在登录页面中

重置JSESSIONID cookie以防止重定向最后一页

// login_form.jsp

Cookie jsess = new Cookie("JSESSIONID",null);

jsess.setMaxAge(0);

jsess.setPath(pageContext.getServletContext().getContextPath());

response.addCookie(jsess);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15947628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档